// 該函數(shù)的返回值是一個函數(shù):func(value int) int
func adder() func(value int) int {
sum := 0 // 自由變量畏妖,Go 的閉包是可以含有自由變量的
return func(value int) int {
sum += value
return sum
}
}
func main() {
add := adder() // 此處返回一個函數(shù)
for i := 0; i < 10; i++ {
fmt.Printf("0 + ... + %d = %d", i, add(i)) //調(diào)用函數(shù)add
fmt.Println()
}
}
- adder() 函數(shù)的返回值是一個函數(shù)
- 注意:在 Go 語言中,閉包是可以含有自由變量的