الذهاب اللغة وظيفة متكررة
العودية، هو للاتصال بهم في عملية التشغيل.
الصيغة كالتالي:
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
عدد فيبوناتشي
وحققت الأمثلة التالية من خلال وظيفة عودي العودة اللغة فيبوناتشي تسلسل فيبوناتشي:
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