闭包

简单讲,闭包就是指有权访问另一个函数作用域中的变量的函数。

理解闭包的关键在于:外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象,这就是闭包的重要概念。

package main

import "fmt"

func adder() func(int) int {
    sum := 0
    // 返回一个闭包,此闭包引用了外部变量 sum
    return func(x int) int {
        sum += x
        return sum
    }
}

func main() {
    a := adder()
    fmt.Println(a(1))
    fmt.Println(a(2))

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容