Go の空の構造体を理解する: struct{} と struct{}{}
Go では、struct キーワードは構造化データを定義します名前付き要素で構成される型。ただし、慣用的な Go コードで頻繁に使用される struct{} と struct{}{} には特に注意が必要です。
struct{}: 空の構造体
構造体{} は、要素のない空の構造体を表す特殊なケースです。これには、サイズがゼロであるというユニークなプロパティがあります。つまり、この型の値にはメモリが割り当てられません。複合リテラルとしての
struct{}{}
対照的に、int{5} または []string{"Go", "Python"} と同様に記述された struct{}{} は、次の型の値を明示的に構築する複合リテラルです。構造体{}。 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 中国語 Web サイトの他の関連記事を参照してください。