Go 中的結構:struct{} 和struct{}{} 揭秘
在Go 中,struct 是用來定義資料的強大構造類型。但是,結構體有兩種特殊情況值得研究:struct{} 和 struct{}。
struct{}:零元素結構
struct{}是沒有命名元素的結構型別。它有一些有用的用途:
用法:
var emptyStruct struct{}
struct{}:空複合文字
struct{}{} 是構造空結構體值的複合文字。複合文字允許簡潔地初始化特定類型的值。對於struct{},語法很簡單:
var emptyStructValue = struct{}{}
集合實作中的使用
空結構的一個實際應用是建立類似集合的資料使用Go 映射的結構。由於映射只允許唯一鍵,因此我們可以使用struct{} 作為值類型來建立一組唯一元素,而不儲存任何值:
type Set map[string]struct{} func main() { set := make(Set) set["foo"] = struct{}{} set["bar"] = struct{}{} _, ok := set["foo"] println("Is \"foo\" in the set?", ok) }
結論
struct{} 和struct{}{} 提供了擴展Go 結構系統實用性的獨特功能。零元素結構提供記憶體效率,而空複合文字有助於建立空結構值或建構類似集合的資料結構。
以上是Go 結構體:「struct{}」和「struct{}{}」有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!