为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang 中返回递归匿名函数

在 golang 中返回递归匿名函数

Go
慕侠2389804 2022-09-05 17:06:35
我希望能够在golang中返回递归匿名函数。我使用了下面的代码片段。这里 foo() 不起作用,因为匿名函数无法引用自身。bar() 按预期工作。如果可能的话,这样做的正确方法是什么?package mainimport (    "fmt")func foo() func(int) int {    return func(x int) int {        if x == 1 {            return 1        }        return x * func(x-1) // this is where the problem lies    }}func bar() func(int) int {    return func(x int) int {        return x * 100     }}func main() {    a:= foo()    b:= bar()    fmt.Println(a(5))    fmt.Println(b(5))}
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

您可以先声明:f


func foo() func(int) int {

    var f func(x int) int

    f = func(x int) int {

        if x == 1 {

            return 1

        }

        return x * f(x-1) 

    }

   return f

}


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信