猿问

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

考虑以下 Go 程序:


package main


func 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 已声明但未使用

如果确实使用它,为什么会导致警告?


红颜莎娜
浏览 90回答 1
1回答

陪伴而非守候

变量的值永远不会被访问:只会被修改。因此,该变量永远不会用于任何效果。如果变量对程序的行为有某种特定的影响,则该变量仅被视为“已使用”。试试这个,警告就会消失。func main() {    var b int    a(func() {        b = 12    })        // Accessing the value "b"    fmt.Println(b)}
随时随地看视频慕课网APP

相关分类

Go
我要回答