考慮以下 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)
}
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消