scala
1val a=Array[Int](n) 2a(m)=true
とやることができないのですが他に方法はありますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
Int の配列に true を代入することはできないと思います。
scala を会話的に実行させてみました。
$ scala Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_66). Type in expressions to have them evaluated. Type :help for more information. scala> var n = 10 n: Int = 10 scala> var m = 3 m: Int = 3 scala> var a = new Array[Int](n) a: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) scala> a(m) = 3 scala> a(m) = true <console>:14: error: type mismatch; found : Boolean(true) required: Int a(m) = true ^
treu/valse を設定したいなら、Boolean の配列にすることが必要です。
scala> var a = new Array[Boolean](n) a: Array[Boolean] = Array(false, false, false, false, false, false, false, false, false, false) scala> a(m) = true scala> a res3: Array[Boolean] = Array(false, false, false, true, false, false, false, false, false, false)
投稿2015/12/26 22:18
総合スコア22324
0
scala> val arr = new Array[Any](5) arr: Array[Any] = Array(null, null, null, null, null) scala> arr(0) = 1 scala> arr(1) = false scala> arr res13: Array[Any] = Array(1, false, null, null, null)
のような感じでできそうですが、immutableな実装が好ましいと思います。
scala> val x = List(1,true) x: List[AnyVal] = List(1, true) scala> x(0) res16: AnyVal = 1 scala> x(0) = 2 <console>:9: error: value update is not a member of List[AnyVal] x(0) = 2
投稿2016/04/15 17:09
総合スコア12
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/26 23:59
2015/12/27 00:19
2015/12/27 00:25