Назад к вопросам
Совкомбанк
Junior — Middle
75
Можете объяснить, что означает использование inline функции в Kotlin и чем она отличается от обычной функции?
Компании, где спрашивали
Viasat tech
Effective Mobile
Ответ от нейросети
sobes.tech AI
В Kotlin ключевое слово inline используется для функций, чтобы компилятор вставлял тело функции непосредственно в место вызова, вместо обычного вызова через стек. Это уменьшает накладные расходы на вызов функции, особенно полезно для функций высшего порядка, которые принимают лямбда-выражения.
Отличия от обычной функции:
- Производительность: inline-функции могут повысить производительность за счёт устранения вызова функции.
- Лямбда-выражения: при использовании inline функций лямбды не создают дополнительных объектов, что снижает нагрузку на сборщик мусора.
Пример:
inline fun measureTime(block: () -> Unit) {
val start = System.currentTimeMillis()
block()
println("Время выполнения: ${System.currentTimeMillis() - start} мс")
}
fun main() {
measureTime {
println("Выполняется код")
}
}
Здесь measureTime — inline функция, и её тело будет вставлено в main вместо обычного вызова.