Sobes.tech
Junior — Middle

Miben különböznek az inline függvények a szokásos függvényektől, és mik az előnyeik?

sobes.tech MI

Válasz az MI-től

Inline függvények azok a függvények, amelyeket a fordító megpróbál közvetlenül a hívás helyén helyettesíteni, nem pedig hagyományos függvényként hívni őket. Ez csökkenti a függvényhívás költségeit (például az átmenet a címre és a kontextus mentése).

Az inline függvények előnyei:

  • A teljesítmény növelése a függvényhívás kiküszöbölésével.
  • A fordító jobb optimalizálási lehetősége, például szükségtelen változók eltávolítása.

Azonban, ha a függvény nagy, az inline növelheti a bináris méretet, ezért a fordító figyelmen kívül hagyhatja az inline-ot nagy függvények esetén.

Példa Kotlinben:

inline fun measureTime(block: () -> Unit) {
    val start = System.currentTimeMillis()
    block()
    println("Time: ${System.currentTimeMillis() - start} ms")
}

// Használat
measureTime {
    // kód, amelynek futási idejét mérni kell
}