Die leere Struktur in Go verstehen: struct{} und struct{}{}
In Go definiert das Schlüsselwort struct strukturierte Daten Typ, der aus benannten Elementen besteht. Allerdings verdienen struct{} und struct{}{}, die häufig in idiomatischem Go-Code vorkommen, besondere Aufmerksamkeit.
struct{}: Eine leere Struktur
Die Struktur {} ist ein Sonderfall, der eine leere Struktur ohne Elemente darstellt. Es hat die einzigartige Eigenschaft, dass es die Größe Null hat, was bedeutet, dass einem Wert dieses Typs kein Speicher zugewiesen wird.
struct{}{} als zusammengesetztes Literal
Im Gegensatz dazu ist struct{}{}, ähnlich wie int{5} oder []string{"Go", "Python"} geschrieben, ein zusammengesetztes Literal, das explizit einen Wert vom Typ struct{} erstellt. Dieses Literal hat keine Felder, da struct{} keine definierten Elemente hat.
Anwendungen leerer Strukturen
Leere Strukturen können im Go-Code verschiedene Verwendungszwecke finden:
Beispiel: Erstellen eines Sets mit einer leeren Struktur
Hier ist ein Beispiel für die Verwendung einer Karte mit einem leeren Strukturwerttyp zum Erstellen eines Satzes:
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:{}] }
Beachten Sie, dass dieser Ansatz nur die Existenz von Schlüsseln prüft, nicht ihre zugehörigen Werte.
Das obige ist der detaillierte Inhalt vonWelche Verwendungen und Eigenschaften haben leere Strukturen („struct{}' und „struct{}{}') in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!