Sobes.tech
Назад к вопросам
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 вместо обычного вызова.