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