为什么兽医抱怨这个变量被声明但没有被使用?
Why does vet complain that this variable is declared but not used?
考虑以下 Go 程序:
package main
func a(fn func()) {
fn()
}
func main() {
var b int
a(func() {
b = 12
})
}
(run above program on Go Playground)
b
在第 8 行声明,并在第 10 行赋值。但是,vet
报告如下:
vet.exe: test.go:8:2:
b declared but not used
如果确实使用了为什么会出现警告?
变量的值从未被访问过:仅被修改过。因此,该变量永远不会产生任何效果。
只有当变量对程序的行为有某些指定的影响时,该变量才被视为“已使用”。
试试这个,警告就会消失。
func main() {
var b int
a(func() {
b = 12
})
// Accessing the value "b"
fmt.Println(b)
}
考虑以下 Go 程序:
package main
func a(fn func()) {
fn()
}
func main() {
var b int
a(func() {
b = 12
})
}
(run above program on Go Playground)
b
在第 8 行声明,并在第 10 行赋值。但是,vet
报告如下:
vet.exe: test.go:8:2: b declared but not used
如果确实使用了为什么会出现警告?
变量的值从未被访问过:仅被修改过。因此,该变量永远不会产生任何效果。
只有当变量对程序的行为有某些指定的影响时,该变量才被视为“已使用”。
试试这个,警告就会消失。
func main() {
var b int
a(func() {
b = 12
})
// Accessing the value "b"
fmt.Println(b)
}