Стандартная функция Котлина let
определяется следующим образом:
public inline fun <T, R> T.let(block: (T) -> R): R
Не означает ли это, что возвращаемый тип let будет таким, какой возвращает блок?
Почему это не работает?
var a: String? = "maybe null"
val x: Boolean = a?.let {
a.contains("maybe") // note that contains returns Boolean, not Boolean?
}
Это жалуется: Несоответствие типов: Обязательно Boolean
, Найдено Boolean?
Не должно ли оно вернуть Boolean
, поскольку функция contains
возвращает Boolean
?
Я уверен, что что-то неправильно понял. Может быть, кто-то может помочь мне и другим новичкам лучше понять.