Sobes.tech
Back to questions
Junior — Middle
72

Какие функции области видимости (scope functions) в Kotlin тебе известны?

Companies where asked
Effective Technologies

Answer from AI

sobes.tech AI

В Kotlin есть несколько функций области видимости (scope functions), которые позволяют выполнять операции с объектом в определённом контексте. Основные из них:

  • let — выполняет блок кода с объектом в качестве аргумента it и возвращает результат блока. Часто используется для безопасной работы с nullable.

    val name: String? = "Kotlin"
    name?.let {
        println("Длина имени: ${it.length}")
    }
    
  • run — выполняет блок кода с объектом как this и возвращает результат блока. Удобна для инициализации и вычислений.

    val result = "Hello".run {
        println(this)
        length
    }
    
  • with — похожа на run, но вызывается как функция с объектом в параметре, возвращает результат блока.

    val builder = StringBuilder()
    val result = with(builder) {
        append("Hello")
        append(" World")
        toString()
    }
    
  • apply — выполняет блок с объектом как this, возвращает сам объект. Часто используется для конфигурации объектов.

    val person = Person().apply {
        name = "John"
        age = 30
    }
    
  • also — выполняет блок с объектом как it, возвращает сам объект. Используется для дополнительных действий, например, логирования.

    val numbers = mutableListOf(1, 2, 3).also {
        println("Список: $it")
    }
    

Каждая функция отличается тем, как передаёт объект в лямбду (this или it) и что возвращает (результат блока или сам объект).