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

Введение во встраивание функций в Kotlin

Лямбду часто передают в функцию как короткий блок действий. Компилятор может не вызывать такую функцию обычным способом, а развернуть ее код в точке вызова. Такой прием называют встраиванием функций.

Функцию, которую разрешают разворачивать, помечают словом inline перед fun. Если у нее есть параметр-лямбда, тело лямбды тоже может оказаться рядом с вызывающим кодом, а не жить отдельно.

Пусть есть обертка: сначала короткое сообщение, затем переданный блок, затем снова сообщение. Объявление выглядит так:

inline fun around(block: () -> Unit) { println("start") block() println("finish") }

При вызове компилятор подставляет команды из тела around и из лямбды на место этой строки. Проверить порядок можно простым примером:

fun main() { around { println("work") } }

На выходе идут четыре строки: границы из функции и одна строка из блока между ними. Логика читается как обычная последовательность команд, хотя снаружи осталась короткая запись с лямбдой.

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

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