首页 > 后端开发 > Golang > 正文

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

Patricia Arquette
发布: 2024-10-31 12:47:31
原创
730 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!