Middle
Ce este o funcție cu recursie de coadă (tailrec) în Kotlin?
sobes.tech AI
Răspuns de la AI
Funcția cu recursie de tip tailrec în Kotlin este o funcție recursivă în care apelul recursiv este ultima operație din corpul funcției. Acest lucru permite compilatorului să optimizeze apelurile, transformând recursia într-un ciclu, ceea ce previne depășirea stivei.
Pentru a indica o astfel de funcție, se folosește modificatorul tailrec. Dacă funcția nu îndeplinește cerințele de recursie tailrec, compilatorul va genera o eroare.
Exemplu de recursie tailrec pentru calcularea factorialului:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Aici, apelul recursiv factorial(n - 1, acc * n) este ultimul în funcție, ceea ce permite optimizarea apelului.