闭包

作者: DongGuangqing | 来源:发表于2020-04-04 23:39 被阅读0次

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

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

    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))
    
    }
    
    

    相关文章

      网友评论

          本文标题:闭包

          本文链接:https://www.haomeiwen.com/subject/nuwnyctx.html