Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpSfInr 10 of 299 menu
◀ ▶

Введение в scope-функции в Kotlin

Scope-функция вызывается у значения и передает его в лямбду. Внутри блока можно читать поля, вызывать методы и строить выражение, не повторяя имя переменной на каждой строке. Такой прием часто встречается в коде на Kotlin рядом с цепочками преобразований.

Смысл общий: есть объект-контекст, есть блок действий над ним и есть значение, которое выражение в блоке отдает наружу.

Простой пример - расширение let у непустой строки. Блок получает строку параметром it, последнее выражение в лямбде становится результатом всего вызова:

fun main() { val label = "kotlin" val upper = label.let { it.uppercase() } println(upper) }

Строка в переменной label попадает в лямбду один раз, а снаружи остается уже готовый текст в верхнем регистре. Имя it задает компилятор, если у лямбды один параметр и имя не указано явно.

Если результат scope-вызова сразу нужен в другой команде, его кладут в переменную или передают дальше. Контекстный объект при этом не обязан меняться: блок может только прочитать данные и вернуть новое значение.

Scope-функции не заменяют обычные методы класса. Они удобны, когда логика короткая, локальна для места вызова и хорошо читается как «сделать что-то с этим значением здесь и сейчас».

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить