举例讲解Go语言中函数的闭包使用
所以在Go的源文件里,函数声明都是出现在最外层的。“声明”就是把一种类型的变量和一个名字联系起来。可以认为它是一个闭包作坊,根据入参返回(生产)一个闭包。这样add5就是使用5作为add的参数得到的一个闭包。闭包的声明是在另一个函数的内部,形成嵌套。如add的base参数在return返回的闭包的外层,所以它的值5在add返回并赋值给add5后依旧存在。当add5执行时,参数i可以从这个外层得到的base相加,得到结果15.个人理解:其实理解闭包的最方便的方法就是将闭包函数看成一个类,一个闭包函数调用就是实例化一个类。比如上例中的adder函数返回func int 的函数pos和neg分别实例化了两个“闭包类”,在这个“闭包类”中有个“闭包全局变量”sum。
用户评论