闭包

2020-04-04  本文已影响0人  DongGuangqing

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

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

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

}

上一篇下一篇

猜你喜欢

热点阅读