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

为什么 Go 会给出'err Declared and Notused”错误?

Linda Hamilton
发布: 2024-11-19 15:31:02
原创
713 人浏览过

Why Does Go Give an

Go 中未使用的变量

在 Go 编程中,使用声明的变量是至关重要的。如果您声明的变量在代码范围内未使用,则可能会出现编译错误“声明错误但未使用”。此错误并不表示任何阴影问题。

在给定的代码片段中:

package main

import (
    "fmt"
)

func main() {
    var (
        err error
        dto = make(map[string]interface{})
    )

    dto[`thing`], err = getThings()
    fmt.Println(dto[`thing`])
}

func getThings() (string, error) {
    return `the thing`, nil
}
登录后复制

由于未使用 err 变量而发生错误。尽管已声明,但它仅在调用 getThings() 期间分配了一个值,并没有进一步使用。

根据 Go 的常见问题解答,“未使用的变量的存在可能表明存在错误。”未使用的变量会减慢编译和构建时间。因此,Go 需要利用所有声明的变量。

要解决错误,请删除 err 变量声明或将其分配给 _:

package main

import (
    "fmt"
)

func main() {
    var (
        _ error
        dto = make(map[string]interface{})
    )

    dto[`thing`], _ = getThings()
    fmt.Println(dto[`thing`])
}

func getThings() (string, error) {
    return `the thing`, nil
}
登录后复制

或者,利用 err 进行错误检查:

package main

import (
    "fmt"
)

func main() {
    var (
        err error
        dto = make(map[string]interface{})
    )

    dto[`thing`], err = getThings()
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(dto[`thing`])
}

func getThings() (string, error) {
    return `the thing`, nil
}
登录后复制

虽然允许有未使用的全局变量或函数参数,但必须利用函数作用域内声明的变量来避免编译时错误。

以上是为什么 Go 会给出'err Declared and Notused”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板