そして、Kotlinの初心者は、「なぜ次のコードがコンパイルされないのか」と質問します。
var left: Node? = null
fun show() {
if (left != null) {
queue.add(left) // ERROR HERE
}
}
「左」はこの時点で変更されている可能性のある変更可能なプロパティであるため、「ノード」へのスマートキャストは不可能です。
それleftは可変変数ですが、明示的にチェックleft != nullしleftていてタイプなNodeので、なぜそのタイプにスマートキャストできないのですか?
これをエレガントに修正するにはどうすればよいですか?:)
n.left?.let { queue.add(it) }私は思いますか?