Go 指南学习笔记七 发表于 2017-09-07 | 分类于 golang | 闭包 函数也是一个值,也可以像其它值一样传递。函数值也可以作为参数或者返回值 闭包是一个函数值,他引用了函数体之外的变量 这个函数值可以对引用的变量进行修改或者赋值 1234567891011121314151617181920package mainimport ( "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)) }} 输出结果: 12345678910111213[Running] go run "/Users/badwolf/Documents/go/hello/tempCodeRunnerFile.go"0 01 -23 -66 -1210 -2015 -3021 -4228 -5636 -7245 -90[Done] exited with code=0 in 0.605 seconds 如果您觉得对您有帮助,谢谢您的赞赏! 打赏 微信支付 本文作者: badwolf 本文链接: http://www.badwolfbay.cn/2017/09/07/go-e6-8c-87-e5-8d-97-e5-ad-a6-e4-b9-a0-e7-ac-94-e8-ae-b0-e4-b8-83/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!