Go是否支持lambda表达式或类似内容?我想从使用lambda表达式(Ruby)的另一种语言移植库。
3 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
是的
在计算机编程中,匿名函数或lambda抽象(函数文字)是未绑定到标识符的函数定义,并且Go支持可以形成闭包的匿名函数。当您想要内联定义函数而不必命名时,匿名函数很有用。
package main
import "fmt"
func intSeq() func() int {
i := 0
return func() int {
i += 1
return i
}
}
func main() {
nextInt := intSeq()
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
newInts := intSeq()
fmt.Println(newInts())
}
函数intSeq返回另一个函数,我们在intSeq主体中匿名定义。该返回的函数关闭在变量i以形成闭合。
Output
$ go run closures.go
1
2
3
1
- 3 回答
- 0 关注
- 516 浏览
添加回答
举报
0/150
提交
取消