go-learning/tour_of_go/l4/exercise-fibonacci-closure.go

29 lines
411 B
Go
Raw Normal View History

2025-08-30 18:14:01 +00:00
package main
import "fmt"
func fibonacci() func() int {
previous := 0
current := 0
result := 0
return func() int {
if current == 0 {
current = 1
} else if current == 1 && result == 0 {
result = current
} else {
result = previous + current
previous = current
current = result
}
return result
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}