В чем разница между apply и with

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

Ответ

apply и with — оба являются scope-функциями в Kotlin, но с разными подходами:

  1. apply

    • Работает с контекстом как this (можно опускать).
    • Возвращает сам объект (this).
    • Используется для инициализации/конфигурации объекта.
    val textView = TextView(context).apply {
        text = "Hello"
        textSize = 16f
    }
  1. with

    • Принимает объект как аргумент (this внутри блока).
    • Возвращает результат лямбды.
    • Используется для группировки операций над объектом.
    val text = with(textView) {
        append(" World")
        text.toString() // возвращаемое значение
    }

Итог: apply возвращает объект, with — результат лямбды.