Middle
Qu'est-ce qu'une fonction avec récursion terminale (tailrec) en Kotlin?
sobes.tech IA
Réponse de l'IA
La fonction avec récursion terminal (tailrec) en Kotlin est une fonction récursive où l'appel récursif est la dernière opération dans le corps de la fonction. Cela permet au compilateur d'optimiser les appels, en transformant la récursion en une boucle, ce qui empêche le dépassement de pile.
Pour indiquer une telle fonction, on utilise le modificateur tailrec. Si la fonction ne répond pas aux exigences de la récursion terminale, le compilateur générera une erreur.
Exemple de récursion terminale pour calculer la factorielle :
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Ici, l'appel récursif factorial(n - 1, acc * n) est le dernier dans la fonction, ce qui permet d'optimiser l'appel.