そして、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) }
私は思いますか?