这段代码出了什么问题?
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
prev := 0
curr := 1
return func() int {
temp := curr
curr := curr + prev
prev := temp
return curr
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
Run Code Online (Sandbox Code Playgroud)
prog.go:13:上一个宣布但未使用
Lil*_*ard 15
您声明了一个名为变量的变量prev
,然后从未使用它.
具体来说,你说prev := temp
.这是在当前作用域中创建一个新的局部变量prev
.我假设你只想说prev = temp
,它修改了prev
从周围范围继承的变量.同样,你可能想curr = curr + prev
在前一行说,而不是使用:=
.
归档时间: |
|
查看次数: |
2038 次 |
最近记录: |