在下面的代码片段中,错误消息“prog.go:13: prev statements and not
<code class="go">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()) } }</code>
出现此错误是因为 fibonacci 函数中声明了变量 prev,但从未使用过。具体来说,行 prev := temp 创建一个名为 prev 的新局部变量。该变量与外部作用域中声明的 prev 变量不同。要修复该错误,我们需要修改代码以使用外部作用域中的 prev 变量,而不是创建新的局部变量。
以下是更正后的代码:
<code class="go">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()) } }</code>
以上是为什么我的 Go 代码中会出现'prevclarifiedandnotused”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!