В Kotlin есть чистый способ присвоить значение переменной, только если значение не равно нулю?
Пример:
if(x != null) y = x
Я нашел решение, как
y = x? : return
но я не могу понять, делает ли это то, что я хочу, и как работает этот оператор.
Другое решение, если вы еще не хотите возвращаться из функции:
x?.let{ y = it }
Который проверяет, является ли x ненулевым, затем передает его как единственный параметр лямбда-блоку.
x
Это также безопасный вызов, если ваш x является var.
var
Оператор называется Элвис Оператор. Он оценивает, если x не равно нулю, и если это правда, присваивает x y. Если значение равно нулю, оно оценивает оператор после знака вопроса, возвращая его немедленно и, следовательно, оставляя y нетронутым.
y