Go编译错误:已声明但未使用(尽管已使用)
短信预约 -IT技能 免费直播动态提醒
小伙伴们对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的相关知识,也可关注编程网公众号。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341