Latest web development tutorials

fonction récursive Go de langue

Recursion, est d'appeler leur propre dans le processus de fonctionnement.

La syntaxe est la suivante:

func recursion() {
   recursion() /* 函数调用自身 */
}

func main() {
   recursion()
}

Aller langue récursivité de soutien. Mais lorsque nous utilisons récursivité, les développeurs ont besoin pour définir une condition de sortie, sinon va tomber dans une boucle récursive infinie.

fonction récursive pour résoudre le problème mathématique est très utile, comme factorielle, générer nombre de Fibonacci et ainsi de suite.


factorielle

Passez par les exemples suivants récursives exemples linguistiques fonction factorielle:

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))
}

Des exemples de mise en oeuvre du résultat ci-dessus est la suivante:

15 的阶乘是 1307674368000

nombre de Fibonacci

Les exemples suivants sont obtenus grâce à la fonction récursive Go langue Fibonacci Fibonacci:

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))
    }
}

Des exemples de mise en oeuvre du résultat ci-dessus est la suivante:

0	1	1	2	3	5	8	13	21	34