Junior — Middle
¿Puedes explicar qué significa usar una función inline en Kotlin y en qué se diferencia de una función normal?
sobes.tech AI
Respuesta de la IA
В 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 вместо обычного вызова.