Go の構造体: struct{} と struct{}{} をわかりやすく解説
Go では、struct はデータの定義に使用される強力な構造体です種類。ただし、検討する価値のある構造体には、struct{} と struct{} の 2 つの特殊なケースがあります。
struct{}: ゼロ要素構造体
struct{}名前付き要素を持たない構造体型です。これはいくつかの有用な目的を果たします。
使用法:
var emptyStruct struct{}
struct{}: 空の複合リテラル
struct{}{} は複合リテラルです空の構造体の値を構築します。複合リテラルを使用すると、特定の型の値を簡潔に初期化できます。 struct{} の構文は単純です。
var emptyStructValue = struct{}{}
セット実装での使用法
空の構造体の実際的な応用例の 1 つは、セットのようなデータを作成することです。 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 中国語 Web サイトの他の関連記事を参照してください。