Чтение о Нулевой безопасности в Kotlin и мне любопытно, почему цепочки переменных, такие как bob?.department?.head?.name
, никогда не заканчиваются на ?
- чтобы проверить, не является ли последнее доступное свойство не нулевым (в данном случае name
).
Я делаю Типы Nullable для Kotlin Koans и мне любопытно, почему ответ не может быть:
fun sendMessageToClient(client: Client?, message: String?, mailer: Mailer){
val email = client?.personalInfo?.email?
if (message != null){ mailer.sendMessage(email, message) }
}
class Client (val personalInfo: PersonalInfo?)
class PersonalInfo (val email: String?)
interface Mailer {
fun sendMessage(email: String, message: String)
}
вместо (ответ):
fun sendMessageToClient(client: Client?, message: String?, mailer: Mailer){
val email = client?.personalInfo?.email
if (message != null && email != null){ mailer.sendMessage(email, message) }
}
class Client (val personalInfo: PersonalInfo?)
class PersonalInfo (val email: String?)
interface Mailer {
fun sendMessage(email: String, message: String)
}