Middle
Kas yra tailrec (uodegos rekursijos) funkcija Kotlin'e?
sobes.tech AI
Atsakymas iš AI
Kotlin'e tailrec su rekursija yra rekursinė funkcija, kurioje rekursinis kvietimas yra paskutinė operacija funkcijos kūne. Tai leidžia kompiliatoriui optimizuoti kvietimus, paverčiant rekursiją į ciklą, kas užkerta kelią steko perpildymui.
Tokią funkciją žymėti naudojamas modifikatorius tailrec. Jei funkcija neatitinka tailrec reikalavimų, kompiliatorius išmes klaidą.
Pavyzdys, kaip naudoti tailrec rekursiją faktorialo skaičiavimui:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Čia rekursinis kvietimas factorial(n - 1, acc * n) yra paskutinis funkcijoje, kas leidžia optimizuoti kvietimą.