猿问

如何在 Go 中递归闭包?

如何在 Go 中递归闭包?


假设我有一个像


recur := func(){

    recur()

}

编译器说:


未定义:重复


我该如何实施?为什么会发生?


慕莱坞森
浏览 154回答 1
1回答

慕妹3146593

这是因为评估顺序的工作方式。截至 2015 年 12 月 (go.1.5.1),没有任何语言功能提供它。可能的解决方法:var recur func()recur = func(){    recur()}//ortype recurF func(recurF)recur := func(recur recurF) {    recur(recur)}更多信息:https : //github.com/golang/go/issues/226
随时随地看视频慕课网APP

相关分类

Go
我要回答