为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 vet 抱怨这个变量已声明但未使用?

为什么 vet 抱怨这个变量已声明但未使用?

Go
红颜莎娜 2022-10-10 20:01:51
考虑以下 Go 程序:package mainfunc a(fn func()) {    fn()}func main() {    var b int    a(func() {        b = 12    })}(在 Go Playground 上运行上面的程序)b在第 8 行声明并在第 10 行赋值。但是,vet报告如下:兽医.exe:test.go:8:2:  b 已声明但未使用如果确实使用它,为什么会导致警告?
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

变量的值永远不会被访问:只会被修改。因此,该变量永远不会用于任何效果。


如果变量对程序的行为有某种特定的影响,则该变量仅被视为“已使用”。


试试这个,警告就会消失。


func main() {

    var b int

    a(func() {

        b = 12

    })

    

    // Accessing the value "b"

    fmt.Println(b)

}


查看完整回答
反对 回复 2022-10-10
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信