В чем разница между scope функциями apply и let

«В чем разница между scope функциями apply и let» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

apply и let — scope-функции Kotlin, но работают по-разному:

  1. apply:

    • Контекстный объект — this (можно опустить)
    • Возвращает сам объект (this)
    • Используется для настройки объекта
    val person = Person().apply {
        name = "Alice"
        age = 25
    }
  1. let:

    • Контекстный объект — it (или можно переименовать)
    • Возвращает результат лямбды
    • Используется для преобразования или проверки объекта
    val nameLength = person?.let { 
        it.name.length 
    } ?: 0

Ключевое отличие: apply модифицирует и возвращает исходный объект, let работает с объектом и возвращает результат лямбды.