在 Go 中聲明具有匿名類型的變量時,我發(fā)現(xiàn)var vvsv:=語法的工作方式不同。想象一下,我們正在聲明一個空的匿名結構類型實例并將其分配給一個變量。這有效:func main() {
var v struct {}
_ = v但這不會:func main() {
t := struct{}
_ = t
}編譯它會出現(xiàn)以下錯誤(https://play.golang.org/p/MgbttbBVmYE):prog.go:8:7: type struct {} is not an expression為什么會這樣?
1 回答

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
var v struct{}
給出v
類型struct{}
但沒有顯式設置值,因此它得到零值{}
。
t := struct{}
不是一個完整的表達式。您需要t := struct{}{}
創(chuàng)建t
with typestruct {}
并賦予它 value {}
。
也就是說,struct{}
是一個類型,但是創(chuàng)建t
with:=
需要一個值,而不僅僅是右邊的一個類型。 struct{}{}
是如何編寫匿名空結構的字面形式。
- 1 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消