Back to questions
Middle
503
Что такое функция с хвостовой рекурсией (tailrec) в Kotlin?
Answer from AI
sobes.tech AI
Функция с хвостовой рекурсией (tailrec) в Kotlin — это рекурсивная функция, где рекурсивный вызов является последней операцией в теле функции. Это позволяет компилятору оптимизировать вызовы, преобразуя рекурсию в цикл, что предотвращает переполнение стека.
Для обозначения такой функции используется модификатор tailrec. Если функция не соответствует требованиям хвостовой рекурсии, компилятор выдаст ошибку.
Пример хвостовой рекурсии для вычисления факториала:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Здесь рекурсивный вызов factorial(n - 1, acc * n) — последний в функции, что позволяет оптимизировать вызов.