Aller à la fonction récursive du langage
La récursion signifie vous appeler pendant le processus en cours.
Le format de syntaxe est le suivant :
func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() }
Le langage Go prend en charge la récursivité. Mais lorsque nous utilisons la récursivité, les développeurs doivent définir des conditions de sortie, sinon la récursivité tombera dans une boucle infinie.
Les fonctions récursives sont très utiles pour résoudre des problèmes mathématiques, tels que calculer des factorielles, générer des séquences de Fibonacci, etc.
Factorial
L'exemple suivant utilise l'instance de fonction récursive factorielle du langage Go :
package main import "fmt" func Factorial(x int) (result int) { if x == 0 { result = 1; } else { result = x * Factorial(x - 1); } return; } func main() { var i int = 15 fmt.Printf("%d 的阶乘是 %d\n", i, Factorial(i)) }
Le résultat de sortie de l'exécution de l'exemple ci-dessus est :
15 的阶乘是 1307674368000
Séquence de Fibonacci
L'exemple suivant implémente la séquence de Fibonacci via la fonction récursive du langage Go :
package main import "fmt" func fibonaci(n int) int { if n < 2 { return n } return fibonaci(n-2) + fibonaci(n-1) } func main() { var i int for i = 0; i < 10; i++ { fmt.Printf("%d\t", fibonaci(i)) } }
Le résultat de sortie de l'exécution de l'exemple ci-dessus est :
0 1 1 2 3 5 8 13 21 34