Я написал этот код:
var test: String? = null
get() {
field?.also {
return "has value"
}
}
Достигает return
только когда поле не нулевое. В противном случае тело просто завершается. Тем не менее, это прекрасно компилируется и возвращает null
, если поле равно нулю.
Если я перейду на это:
var test: String? = null
get() {
if (field != null)
return "has value"
}
теперь компилятор жалуется, что тело блока нуждается в операторе возврата.
Это какая-то недокументированная функция или ошибка?