Sobes.tech
Junior — Middle
93

Kotlin-да inline функцияны пайдалану не екенін және ол әдеттегі функциядан қалай ерекшеленетінін түсіндіре аласыз ба?

Сұралған компаниялар
СовкомбанкСовкомбанк
Viasat tech
Effective Mobile

AI-дан жауап

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 вместо обычного вызова.