Middle
Czym jest funkcja z rekurencją ogonową (tailrec) w Kotlin?
sobes.tech AI
Odpowiedź od AI
Funkcja z rekurencją ogonową (tailrec) w Kotlinie to funkcja rekurencyjna, w której wywołanie rekurencyjne jest ostatnią operacją w ciele funkcji. Pozwala to kompilatorowi na optymalizację wywołań, zamieniając rekurencję na pętlę, co zapobiega przepełnieniu stosu.
Do oznaczenia takiej funkcji używa się modyfikatora tailrec. Jeśli funkcja nie spełnia wymagań rekurencji ogonowej, kompilator zgłosi błąd.
Przykład rekurencji ogonowej do obliczania silni:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Tutaj wywołanie rekurencyjne factorial(n - 1, acc * n) jest ostatnie w funkcji, co pozwala na optymalizację wywołania.