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.