如何在Go中递归闭包?
假设我有一个像
这样的闭包recur := func(){
recur()
}
编译说:
undefined:recur
我该如何实现它?为什么会这样?
答案 0 :(得分:7)
这是因为how the order of evaluation works而发生的。
截至2015年12月(go.1.5.1),没有任何语言功能提供它。
可能的解决方法:
var recur func()
recur = func(){
recur()
}
//or
type recurF func(recurF)
recur := func(recur recurF) {
recur(recur)
}