理解Go 中的空結構體:struct{} 和struct{}{}
Go 中,struct 關鍵字定義了一個結構化資料由命名元素組成的類型。然而,在慣用的 Go 程式碼中經常遇到的 struct{} 和 struct{}{} 值得特別注意。
struct{}:一個空結構體
結構體{} 是一種特殊情況,表示沒有元素的空結構。它具有大小為零的獨特屬性,這意味著不會為該類型的值分配記憶體。
struct{}{} 作為複合文字
相較之下,struct{}{} 的寫法與int{5} 或[]string{"Go ", "Python"} 類似,是一個複合文字,明確建構型別的值結構{}。該文字沒有字段,因為 struct{} 沒有定義的元素。
空結構的應用
空結構可以在Go 程式碼中找到各種用途:
範例:使用空白建立集合Struct
以下是使用具有空結構值類型的對應來建立集合的範例:
package main import "fmt" type Set map[string]struct{} func main() { s := make(Set) s["red"] = struct{}{} s["blue"] = struct{}{} fmt.Println(s) // Prints: map[blue:{} red:{}] }
請注意,此方法僅檢查鍵是否存在,而不檢查它們的相關值。
以上是Go 中空結構體(struct{} 和 struct{}{})的用途和屬性是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!