Ответ
apply и let — scope-функции Kotlin, но работают по-разному:
-
apply:- Контекстный объект —
this(можно опустить) - Возвращает сам объект (
this) - Используется для настройки объекта
- Контекстный объект —
val person = Person().apply {
name = "Alice"
age = 25
}
-
let:- Контекстный объект —
it(или можно переименовать) - Возвращает результат лямбды
- Используется для преобразования или проверки объекта
- Контекстный объект —
val nameLength = person?.let {
it.name.length
} ?: 0
Ключевое отличие: apply модифицирует и возвращает исходный объект, let работает с объектом и возвращает результат лямбды.