Strukturen in Go: struct{} und struct{}{} entmystifiziert
In Go ist struct ein leistungsstarkes Konstrukt, das zum Definieren von Daten verwendet wird Typen. Es gibt jedoch zwei Sonderfälle von Strukturen, die es wert sind, untersucht zu werden: struct{} und struct{}.
struct{}: Die Null-Elemente-Struktur
struct{} ist ein Strukturtyp ohne benannte Elemente. Es dient einigen nützlichen Zwecken:
Verwendung:
var emptyStruct struct{}
struct{}: Leerer Verbund Literal
struct{}{} ist ein zusammengesetztes Literal, das einen leeren Strukturwert erstellt. Zusammengesetzte Literale ermöglichen die präzise Initialisierung von Werten bestimmter Typen. Für struct{} ist die Syntax einfach:
var emptyStructValue = struct{}{}
Verwendung in einer Set-Implementierung
Eine praktische Anwendung der leeren Struktur ist die Erstellung satzartiger Daten Struktur mithilfe einer Go-Map. Da eine Karte nur eindeutige Schlüssel zulässt, können wir struct{} als Werttyp verwenden, um eine Reihe eindeutiger Elemente zu erstellen, ohne Werte zu speichern:
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) }
Fazit
struct{} und struct{}{} bieten einzigartige Funktionen, die den Nutzen des Struktursystems von Go erweitern. Die Null-Element-Struktur sorgt für Speichereffizienz, während das leere zusammengesetzte Literal beim Erstellen leerer Strukturwerte oder beim Konstruieren satzartiger Datenstrukturen hilft.
Das obige ist der detaillierte Inhalt vonGo Structs: Was ist der Unterschied zwischen „struct{}' und „struct{}{}?'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!