这是我引用的代码:
package main
import "fmt"
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
func main() {
pos, neg := adder(), adder()
for i := 0; i < 10; i++ {
fmt.Println(
pos(i),
neg(-2*i),
)
}
}
以下是运行时的输出:
0 0
1 -2
3 -6
6 -12
10 -20
15 -30
21 -42
28 -56
36 -72
45 -90
我不明白函数中的语句x是如何分配的?它似乎没有在函数中的任何地方传递。我也不明白这个变量是如何工作的。每次调用该函数并为其赋值时,不应该重置它吗?returnaddersumadder0
蓝山帝景
汪汪一只猫
相关分类