Sobes.tech
Junior — Middle

El tudná magyarázni, mit jelent az inline függvény használata Kotlinban, és miben különbözik egy normál függvénytől?

sobes.tech MI

Válasz az MI-től

Kotlinben a inline kulcsszó függvényekhez használatos, hogy a fordító a függvény törzsét közvetlenül a hívás helyére illessze be, ahelyett, hogy normál hívást végezne a verem segítségével. Ez csökkenti a függvényhívás költségét, különösen hasznos magasabb rendű függvények esetén, amelyek lambda kifejezéseket fogadnak.

Eltérések egy normál függvénytől:

  • Teljesítmény: az inline függvények javíthatják a teljesítményt a függvényhívás kiküszöbölésével.
  • Lambda kifejezések: inline függvények használatakor a lambda-k nem hoznak létre további objektumokat, ez csökkenti a szemétgyűjtő terhelését.

Példa:

inline fun measureTime(block: () -> Unit) {
    val start = System.currentTimeMillis()
    block()
    println("Futási idő: ${System.currentTimeMillis() - start} ms")
}

fun main() {
    measureTime {
        println("A kód fut")
    }
}

Itt a measureTime egy inline függvény, és a törzse be lesz illesztve a main-be a normál hívás helyett.