首页 >后端开发 >Golang >为什么我的 Go 代码中会出现'prevclarifiedandnotused”错误?

为什么我的 Go 代码中会出现'prevclarifiedandnotused”错误?

Patricia Arquette
Patricia Arquette原创
2024-10-31 12:47:31808浏览

Why am I getting the

Go - 声明的变量名 prev 在给定函数作用域中未使用

在下面的代码片段中,错误消息“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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn