10

重複の可能性:
前方参照 - このコードがコンパイルされるのはなぜですか?
Scala と前方参照

object Main extends App {
  val a = 4
  val b = a + c
  val c = 5
  println(b) // => 4
}

が割り当てられたときと同じように、これは4 を出力します。とは値であるため、ある瞬間と次の瞬間であってはなりません。Scala では、それらはimmutableであるべきですよね?c0bac05

少なくとも何らかの警告を受け取るべきではありませんか? もちろん、上記の例では、それを見逃すにはばかである必要があります、より複雑なケースでは、どの順序で配置するかを判断するのが難しい場合があります.

もちろん、使用できることは承知していますが、実際には使用していないのに、正しい順序で配置したと思っlazy val b = ...たらどうなるでしょうか。これについてまったく警告を受けていないのは危険ではありませんか?これで問題なく動く!? これはどのようにしてScala IDEコンパイラの両方に渡されるのでしょうか? わざとですか?それとも直せないバグですか?:/

:)

4

0 に答える 0