Что означает «разрешить» в лямбда-выражении для наблюдаемого Котлина - PullRequest
0 голосов
/ 23 декабря 2018

Мне было интересно, может ли кто-нибудь объяснить мне слово let в лямбда-выражении с livingata.Это просто для печати лямда-выражения?Некоторые люди используют его, чтобы больше не получать исключений нулевого указателя?

wordViewModel.allWords.observe(this, Observer { value -> 
    value?.let { /*DO SOMETHING WITH VALUE ('IT')*/ }
})

1 Ответ

0 голосов
/ 23 декабря 2018

let() - это котлинская «функция объема».В частности, использование let() с безопасным вызовом (?.) приводит к выполнению лямбды, поставляемой для let(), только если получатель (value) не null.

.Observer интерфейс определен, value может быть null.Таким образом, value -> value?.let { //DO OTHER THINKS WITH 'IT' } в основном говорит: «игнорировать null, но выполнять эту лямбду для всех не null значений».

...