如何理解go语言中的闭包

对于闭包的理解,按照下面2点切入即可:

1,闭包函数的返回值是函数

2,返回的函数绑定在闭包函数内一个变量上。

对于第2条如果不好理解的话,可以这么理解。把外层的函数去掉,把函数内定义的变量想象成全局变量,把返回的函数想象成普通函数。

本质上,就是返回了一个函数,这个函数内操作的变量是在另一个函数中定义的,而且是以引用的形式被调用。一个闭包只有没有外界引用时,才会连同状态一起被销毁。

典型应用场景:当函数的返回值是接口类型时,可以返回实现了该接口的类型的对象。

猜你喜欢

转载自blog.csdn.net/jigetage/article/details/88311501