case class Test(kind: Int) {
val ifX = if (isX) "is X" else "not X"
val isX = kind == 1
}
val test = Test(1)
println("ifX=%s, isX=%b".format(test.ifX, test.isX))
なぜこのコード印刷: ifXを=ではないX、ISX =真奇妙な行動
移動 "ヴァルifXを" は "ifXを" の前にあるとき、それは大丈夫です(印刷ifXを=がXである)
編集:私はそれを修正する方法を知っています。この状況でコンパイラが警告またはエラーを出さない理由を理解できません。
スカラーについて何も知らないのなら、ifXがisXの前に初期化されていると思います。宣言の順序を逆にしてみてください。 –