登录
首页 >  Golang >  Go问答

Go编译错误:已声明但未使用(尽管已使用)

来源:stackoverflow

时间:2024-04-03 16:33:34 104浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《Go编译错误:已声明但未使用(尽管已使用)》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我有以下 go 示例:

package main

import (
    "fmt"
    "log"
    "os"
    "strconv"
)

func main() {
    numberofusers := 10
    numberofusersstr, found := os.lookupenv("number_of_users")
    if found {
        numberofusers, err := strconv.atoi(numberofusersstr)
        if err != nil {
            log.fatalln(err)
        }
    }
    fmt.printf("number of users: %d", numberofusers)
}

构建此狙击手时,出现以下错误:

> go build -o app .
.\app.go:14:3: numberOfUsers declared but not used

显然该变量在最后一个打印语句中使用,但它似乎对编译器隐藏。我错过了什么?


正确答案


当使用 := 时,您声明了一个变量。这意味着这里的 numberofusers

numberofusers, err := strconv.atoi(numberofusersstr)

实际上正在隐藏您的其他 numberofusers 变量。

您可以通过预先声明 err 然后仅使用 = 而不是 := 来修复此问题,这样您只需为变量分配新值而不声明新变量。

var err error
numberOfUsers, err = strconv.Atoi(numberOfUsersStr)

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>