Middle
Šta je funkcija sa tailrec (tailrec) u Kotlinu?
sobes.tech АИ
Одговор од АИ
Funkcija sa tailrec rekurzijom u Kotlinu je rekurzivna funkcija gde je rekurzivni poziv poslednja operacija u telu funkcije. Ovo omogućava kompajleru da optimizuje pozive, pretvarajući rekurziju u petlju, čime se sprečava prelivanje steka.
Za označavanje takve funkcije koristi se modifikator tailrec. Ako funkcija ne ispunjava zahteve tailrec, kompajler će generisati grešku.
Primer tailrec rekurzije za računanje faktoriala:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Ovde je rekurzivni poziv factorial(n - 1, acc * n) poslednji u funkciji, što omogućava optimizaciju poziva.