Junior — Middle
V čom sa líšia inline funkcie od bežných funkcií a aké sú ich výhody?
sobes.tech AI
Odpoveď od AI
Vnútorné funkcie sú funkcie, ktoré sa pokúša prekladač nahradiť priamo na mieste volania, namiesto toho, aby ich volal ako bežné funkcie. To znižuje režijné náklady na volanie funkcie (napríklad, skok na adresu a uloženie kontextu).
Výhody vnútorných funkcií:
- Zvýšenie výkonu odstránením volania funkcie.
- Možnosť, aby prekladač lepšie optimalizoval kód, napríklad odstránením zbytočných premenných.
Avšak, ak je funkcia veľká, vnútorné môže zväčšiť veľkosť binárneho súboru, preto môže prekladač ignorovať vnútorné pre veľké funkcie.
Príklad v Kotlin:
inline fun measureTime(block: () -> Unit) {
val start = System.currentTimeMillis()
block()
println("Time: ${System.currentTimeMillis() - start} ms")
}
// Použitie
measureTime {
// kód, ktorého čas vykonávania je potrebné zmerať
}