ภาษาฟังก์ชันเวียนไป
เรียกซ้ำคือการเรียกของตัวเองในขั้นตอนของการทำงาน
ไวยากรณ์เป็นดังนี้:
func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() }
ไปสนับสนุนการเรียกซ้ำภาษา แต่เมื่อเราใช้เรียกซ้ำนักพัฒนาต้องตั้งเงื่อนไขทางออกมิฉะนั้นจะตกอยู่ในห่วง recursive อนันต์
ฟังก์ชั่นซ้ำในการแก้ปัญหาทางคณิตศาสตร์ที่เป็นประโยชน์อย่างมากเช่นปัจจัยสร้างจำนวนฟีโบนักชีและอื่น ๆ
แฟกทอ
ผ่านตัวอย่างต่อไปนี้ตัวอย่างภาษาฟังก์ชั่นปัจจัย recursive:
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
จำนวนฟีโบนักชี
ตัวอย่างต่อไปนี้จะประสบความสำเร็จผ่านฟังก์ชันเวียนไปภาษาลำดับ 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)) } }
ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:
0 1 1 2 3 5 8 13 21 34