言語再帰関数を行きます
再帰は、実行中のプロセスに自分自身を呼び出すことです。
構文は次のとおりです。
func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() }
言語サポートの再帰を移動します。 我々は再帰を使用する場合でも、開発者は、そうでなければ無限再帰ループに分類されます、終了条件を設定する必要があります。
数学の問題を解決するための再帰関数は階乗のように、というようにフィボナッチ数を生成し、非常に便利です。
階乗
以下の例を経る再帰関数階乗言語の例:
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)) }
上記の出力の実装の例としては、次のとおりです。
15 的阶乘是 1307674368000
フィボナッチ数
以下の例は、再帰関数の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)) } }
上記の出力の実装の例としては、次のとおりです。
0 1 1 2 3 5 8 13 21 34