Какие функции области видимости (scope functions) в Kotlin тебе известны?
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) и что возвращает (результат блока или сам объект).