定义
Go中的匿名函数和PHP类似,区别就是在Go中参数以及返回值的类型必须声明
匿名函数同样被称之为闭包(函数式语言的术语):它们被允许调用定义在其它环境下的变量。闭包可使得某个函数捕捉到一些外部状态,例如:函数被创建时的状态。另一种表示方式为:一个闭包继承了函数所声明时的作用域。这种状态(作用域内的变量)都被共享到闭包的环境中,因此这些变量可以在闭包中被操作,直到被销毁
1 | func(a,b int) int { |
应用
将匿名函数作为返回值
1 | package main |
保证局部变量安全性
闭包内部声明的局部变量无法从外部修改,从而确保了安全性(类似类的私有属性):
1 | package main |
匿名函数作为参数
1 | package main |
使用闭包调试
1 | package main |