@@ -17,4 +17,21 @@ func fact(n int) int {
|
||||
|
||||
func main() {
|
||||
fmt.Println(fact(7))
|
||||
|
||||
// Closures can also be recursive, but this requires the
|
||||
// closure to be declared with a typed `var` explicitly
|
||||
// before it's defined.
|
||||
var fib func(n int) int
|
||||
|
||||
fib = func(n int) int {
|
||||
if n < 2 {
|
||||
return n
|
||||
}
|
||||
return fib(n-1) + fib(n-2)
|
||||
|
||||
// Since `fib` was previously declared in `main`, Go
|
||||
// knows which function to call with `fib` here.
|
||||
}
|
||||
|
||||
fmt.Println(fib(7))
|
||||
}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
9bfb2f870007082835a3c0efaac9aa1c3bc2c15c
|
||||
smWim1q9ofu
|
||||
55d9633a4f0fd0eac2f243b2a2ddb35ae91ed4a9
|
||||
LnBMavPrkuf
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
$ go run recursion.go
|
||||
5040
|
||||
13
|
||||
|
||||
Reference in New Issue
Block a user