Eze*_*eno 5 recursion closures go
如何在Go中递归一个闭包?
假设我有一个闭包
recur := func(){
recur()
}
Run Code Online (Sandbox Code Playgroud)
编译说:
undefined:复发
我该如何实现它?为什么会这样?
它的发生是因为评估的顺序是如何运作的.
截至2015年12月(go.1.5.1),没有任何语言功能提供它.
可能的解决方法:
var recur func()
recur = func(){
recur()
}
//or
type recurF func(recurF)
recur := func(recur recurF) {
recur(recur)
}
Run Code Online (Sandbox Code Playgroud)
更多信息:https://github.com/golang/go/issues/226