我试图在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中这样做?
非常感谢
我正在他们的官方网站上进行巡回演出,我被要求写一个斐波纳契发电机.这里是:
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)