当前位置:  开发笔记 > 编程语言 > 正文

如何在Go中递归一个闭包?

如何解决《如何在Go中递归一个闭包?》经验,为你挑选了1个好方法。

如何在Go中递归一个闭包?

假设我有一个闭包

recur := func(){
    recur()
}

编译说:

undefined:复发

我该如何实现它?为什么会这样?



1> Ezequiel Mor..:

它的发生是因为评估的顺序是如何运作的.

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

可能的解决方法:

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

//or

type recurF func(recurF)

recur := func(recur recurF) {
    recur(recur)
}

更多信息:https://github.com/golang/go/issues/226

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有