Junior — Middle
Функсияҳои inline чӣ фарқ доранд аз функсияҳои оддӣ ва манфиатҳои онҳо чист?
sobes.tech AI
Ҷавоб аз AI
Функсияҳои inline функсияҳое мебошанд, ки компилятор кӯшиш мекунад, ки онҳоро мустақиман дар ҷойи даъват иваз кунад, на ҳамчун функсияҳои оддӣ даъват кунад. Ин хароҷоти даъвати функсияро кам мекунад (масалан, гузаштан ба суроға ва нигоҳ доштани контекст).
Афзалиятҳои функсияҳои inline:
- Бо бартараф кардани даъвати функсия, иҷроишро беҳтар мекунад.
- Имконият барои компилятор, ки кодро беҳтар оптимизатсия кунад, масалан, хориҷ кардани тағйирёбандаҳои нолозим.
Аммо, агар функсия калон бошад, inline метавонад андозаи бинарро зиёд кунад, бинобар ин, компилятор метавонад inline-ро барои функсияҳои калон инкор кунад.
Масалан дар Kotlin:
inline fun measureTime(block: () -> Unit) {
val start = System.currentTimeMillis()
block()
println("Time: ${System.currentTimeMillis() - start} ms")
}
// Истифода
measureTime {
// коди, ки вақти иҷрои онро бояд чен кард
}