|
Go hỗ trợ các hàm đệ quy. Dưới đây là một ví dụ kinh điển. |
![]()
package main |
import "fmt" |
|
|
Hàm |
func fact(n int) int { if n == 0 { return 1 } return n * fact(n-1) } |
func main() { fmt.Println(fact(7)) |
|
|
Closures cũng có thể đệ quy, nhưng điều này yêu cầu
closure được khai báo với một |
var fib func(n int) int
|
fib = func(n int) int { if n < 2 { return n } |
|
|
Since |
return fib(n-1) + fib(n-2)
}
|
fmt.Println(fib(7)) } |
$ go run recursion.go 5040 13 |
Ví dụ tiếp theo: Pointers.