class Bug {
public static String returnNull() {
return null;
}
}
kotlin
fun main() {
val (a: String?, _) = Pair(Bug.returnNull(), true)
println(a.length) // BUG NPE
}
Похоже на то, а какая версия?
?? там же стык с джавой, в чём баг
В том, что там тип явно указан
а, компилятор игнорит эти типы afair 😁
compile error: Only safe ... fun main() { val a: String? = Bug.returnNull() println(a.length) } npe fun main() { val (a: String?, _) = Pair(Bug.returnNull(), true) println(a.length) // BUG NPE }
тут нет использования функции componentN 🙂
Да, похоже на баг. Стоит зарепортить.
не стоит, он уже давно зарепорчен.
А не подскажете как называется этот способ объявления/инициализации переменной? Я про val (a: String?, _)
Destructuring declaration
Спасибо
Обсуждают сегодня