考慮以下 Go 程序:package mainfunc a(fn func()) { fn()}func main() { var b int a(func() { b = 12 })}(在 Go Playground 上運(yùn)行上面的程序)b在第 8 行聲明并在第 10 行賦值。但是,vet報(bào)告如下:獸醫(yī).exe:test.go:8:2: b 已聲明但未使用如果確實(shí)使用它,為什么會(huì)導(dǎo)致警告?
1 回答

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
變量的值永遠(yuǎn)不會(huì)被訪問:只會(huì)被修改。因此,該變量永遠(yuǎn)不會(huì)用于任何效果。
如果變量對(duì)程序的行為有某種特定的影響,則該變量?jī)H被視為“已使用”。
試試這個(gè),警告就會(huì)消失。
func main() {
var b int
a(func() {
b = 12
})
// Accessing the value "b"
fmt.Println(b)
}
- 1 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)
0/150
提交
取消