|
Go podporuje rekurzivní funkce. Tady je klasický příklad. |
|
![]()
package main
|
|
import "fmt"
|
|
|
Tato funkce |
func fact(n int) int {
if n == 0 {
return 1
}
return n * fact(n-1)
}
|
func main() {
fmt.Println(fact(7))
|
|
|
Rekurzivní mohou být i anonymní funkce, ale to
vyžaduje explicitně deklarovat proměnnou pomocí |
var fib func(n int) int
|
fib = func(n int) int {
if n < 2 {
return n
}
|
|
|
Protože jsme |
return fib(n-1) + fib(n-2)
}
|
fmt.Println(fib(7))
}
|
$ go run recursion.go
5040
13
|
Další příklad: Range přes zabudované typy.