Sobes.tech
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.