-
package main
-
-
import "fmt"
-
-
func adder() func(int) int{
-
sum:=0
-
-
return func(x int) int{
-
sum +=x
-
return sum
-
}
-
}
-
-
func main(){
-
a:=adder()
-
fmt.Println(a(9527))
-
}
输出是9527,看到adder函数里面sum这个变量,突然想起来swift里闭包的说明,于是把sum赋值为1,果然结果变成了9528。
接下来必然就是这样
-
func adder(sum int) func(int) int{
-
-
return func(x int) int{
-
sum +=x
-
return sum
-
}
-
}
-
-
func main(){
-
a:=adder(2)
-
fmt.Println(a(9527))
-
}
打印结果是9529。
看来至少swift和golang在这里的处理一样的。
阅读(686) | 评论(0) | 转发(0) |