Recursion 如何在Go中递归闭包?

Recursion 如何在Go中递归闭包?,recursion,go,closures,Recursion,Go,Closures,如何在Go中递归闭包 假设我有一个像 recur := func(){ recur() } 编译器说: 未定义:重现 我如何实现它?为什么会发生这种事?是因为 截至2015年12月(go.1.5.1),没有任何语言功能提供该功能 可能的解决办法: var recur func() recur = func(){ recur() } //or type recurF func(recurF) recur := func(recur recurF) { recur(r

如何在Go中递归闭包

假设我有一个像

recur := func(){
    recur()
}
编译器说:

未定义:重现

我如何实现它?为什么会发生这种事?

是因为

截至2015年12月(go.1.5.1),没有任何语言功能提供该功能

可能的解决办法:

var recur func()
recur = func(){
    recur()
}

//or

type recurF func(recurF)

recur := func(recur recurF) {
    recur(recur)
}
更多信息: