douzhuan0309 2015-12-10 06:00
浏览 159
已采纳

如何在Go中递归关闭? [重复]

This question already has an answer here:

How to recurse a closure in Go?

Suppose I have a closure like

recur := func(){
    recur()
}

Compiler says:

undefined: recur

How can i implement it? Why is it happening?

</div>
  • 写回答

1条回答 默认 最新

  • dpg78570 2015-12-10 06:00
    关注

    it happens because of how the order of evaluation works.

    As of December 2015 (go.1.5.1), there isn't any language feature providing it.

    Possible workarounds:

    var recur func()
    recur = func(){
        recur()
    }
    
    //or
    
    type recurF func(recurF)
    
    recur := func(recur recurF) {
        recur(recur)
    }
    

    More Info: https://github.com/golang/go/issues/226

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)