และมือใหม่ 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) }
ฉันคิดว่า?