Пользовательский геттер без возврата на все пути компилируется тем не менее - PullRequest
0 голосов
/ 13 ноября 2018

Я написал этот код:

var test: String? = null
    get() {
        field?.also {
            return "has value"
        }
    }

Достигает return только когда поле не нулевое. В противном случае тело просто завершается. Тем не менее, это прекрасно компилируется и возвращает null, если поле равно нулю.

Если я перейду на это:

var test: String? = null
    get() {
        if (field != null)
            return "has value"
    }

теперь компилятор жалуется, что тело блока нуждается в операторе возврата.

Это какая-то недокументированная функция или ошибка?

1 Ответ

0 голосов
/ 13 ноября 2018

Это действительно ошибка , которую планируется исправить в 1.3.20.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...