Scala/制御構文/for

決まった回数繰り返すアレである

Java では

for(int i = 0; i < 10; i++){
    System.out.printlin(i);
}

と書くやつである

Scala の for は若干特殊でコードは

for (i:Int <- Range(0, 10)) {
  println(i)
}

このようになる

Range の生成方法を少し変えるとすると

for (i:Int <- 0 until 10)) {
  println(i)
}

となる。

矢印で入れてますよという感じか。この i は var 宣言されていないが、変数として生成されていて、スコープも for 内に収まる。

つまり Scala の for は基本 foreach であり、単純ループではなくコレクションを操作するための文法と思ってよい

for の戻り値

さらに Scala の for は if と同様に戻り値がある

var hoge = for (i:Int <- 0 to 10) yield {
  i * 2
}
println(hoge) // => Vector(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20)

意味はよくわからないが、戻り値を返したい場合は yield キーワードを書く。常に返せばいいじゃんと思うが、何故かつけるのである

scala/basic/control_statements/for.txt · 最終更新: 2020-08-03 13:15 by ore