Инлайн-функции - это функции, которые компилятор встраивает напрямую в код вызова в скомпилированном бинарном файле, вместо генерации стандартного вызова функции.
Преимущества:
- Производительность: Уменьшает накладные расходы на вызов функции (передача аргументов, управление стеком).
- Уменьшение бойлерплейта: Часто используется для higher-order functions, избегая создания анонимных классов или объектов для реализации функциональных интерфейсов.
Недостатки:
- Размер кода: Если инлайн-функция большая или вызывается многократно, код может заметно увеличиться.
- Совместимость: Не все функции можно инлайнить (например, рекурсивные, содержащие
try/catch/finally).
В Kotlin инлайн-функции объявляются с помощью ключевого слова inline:
kotlin
Инлайнинг лямбд в Kotlin позволяет использовать return из вызывающей функции внутри лямбды, что называется non-local return:
kotlin