Sobes.tech
Middle

Wat is een functie met tailrecursie (tailrec) in Kotlin?

sobes.tech AI

Antwoord van AI

De functie met tailrec-recursie in Kotlin is een recursieve functie waarbij de recursieve oproep de laatste operatie in de functie is. Dit stelt de compiler in staat om de oproepen te optimaliseren door de recursie om te zetten in een lus, wat een stapeloverflow voorkomt.

Om zo'n functie aan te duiden, wordt de modifier tailrec gebruikt. Als de functie niet voldoet aan de eisen van tailrec-recursie, geeft de compiler een fout.

Voorbeeld van tailrec-recursie voor het berekenen van de faculteit:

tailrec fun factorial(n: Int, acc: Int = 1): Int {
    return if (n <= 1) acc else factorial(n - 1, acc * n)
}

Hier is de recursieve oproep factorial(n - 1, acc * n) de laatste in de functie, wat het optimaliseren van de oproep mogelijk maakt.