Sobes.tech
Middle

Was ist eine Funktion mit Tail-Recursion (tailrec) in Kotlin?

sobes.tech KI

Antwort von AI

Die Funktion mit Tailrec-Rekursion in Kotlin ist eine rekursive Funktion, bei der der rekursive Aufruf die letzte Operation im Funktionskörper ist. Dies ermöglicht es dem Compiler, die Aufrufe zu optimieren, indem die Rekursion in eine Schleife umgewandelt wird, was einen Stapelüberlauf verhindert.

Zur Kennzeichnung einer solchen Funktion wird der Modifikator tailrec verwendet. Wenn die Funktion nicht den Anforderungen der Tailrec-Rekursion entspricht, gibt der Compiler einen Fehler aus.

Beispiel für Tailrec-Rekursion zur Berechnung der Fakultät:

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

Hier ist der rekursive Aufruf factorial(n - 1, acc * n) der letzte in der Funktion, was die Optimierung des Aufrufs ermöglicht.