Aşağıdaki yönteme sahibim. Mantığı çok basittir, eğer sağ ayarlanmışsa o zaman bir değeri vardır (null değil). Bunu aşağıdaki şekilde yazdığımda işe yarıyor. Yerine, bir do-while döngüsü kullanarak kodu kısaltmak çalışırsanızKotlin derleyici, değişkenin do-while döngüsünde null olarak olmadığını çözemiyor
fun goNext(from: Node): Node? {
var prev : Node = from
var next : Node? = from.right
if (next != null) {
prev = next
next = next.left
while (next != null) {
prev = next
next = next.left
}
}
return prev
}
, artık akıllı Node
için next
atmalarını. Bu hata gösterir:
Type mismatch.
Required: Node<T>
Found: Node<T>?
kod aşağıda:
fun goNext(from: Node): Node? {
var prev : Node = from
var next : Node? = from.right
if (next != null) {
do {
prev = next // Error is here, even though next can't be null
next = next.left
} while (next != null)
}
return prev
}
Neden sadece "while (next! = Null) {...}'? –
Haklısınız! Ben onu görmedim. – biowep