相关疑难解决方法(0)

在Go中的函数中定义递归函数

我试图在Go中的另一个函数中定义一个递归函数,但我正在努力获得正确的语法.我正在寻找这样的东西:

func Function1(n) int {
   a := 10
   Function2 := func(m int) int {
      if m <= a {
         return a
      }
      return Function2(m-1)
   }

   return Function2(n)
}
Run Code Online (Sandbox Code Playgroud)

我想将Function2保留在Function1的范围内,因为它正在访问其范围的某些元素.

我怎么能在Go中这样做?

非常感谢

recursion function go

13
推荐指数
2
解决办法
2964
查看次数

斐波纳契封闭了

我正在他们的官方网站上进行巡回演出,我被要求写一个斐波纳契发电机.这里是:

 package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
    first := 0
    second := 0
    return func() int{
        if(first == 0) {
         first = 1
         second = 1
         return 0
        }else {
            current := first   
            firstc := second
            second = first + second
            first = firstc
            return current
        }



    }
}

func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ …
Run Code Online (Sandbox Code Playgroud)

closures fibonacci go

11
推荐指数
4
解决办法
6724
查看次数

标签 统计

go ×2

closures ×1

fibonacci ×1

function ×1

recursion ×1