問題:
Go中,在映射聲明中使用匿名結構體作為值會引發Gogland 警告,並提出問題:在這種上下文中struct{}{} 和{} 聲明之間有什麼區別?
答案:
理解這兩種語法背後的語意至關重要。
通常,複合文字需要明確型別宣告(例如,[]int{1, 2, 3})。但是,在使用映射時,編譯器可以從映射類型本身推斷鍵和值的類型。這允許簡化複合文字語法,在提供適當類型的值時省略類型聲明。
根據 Go 規範,在這些情況下,當複合文字的類型與映射期望的類型匹配時,可以省略類型聲明。此行為最初是一個疏忽,但在 Go 1.5 中成為有效功能。
注意: 初始化其他類型的複合文字(例如陣列、切片)時,不能省略型別宣告。
以上是Go Maps 中的匿名結構:`struct{}{}` 和 `{}` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!