Heim > Backend-Entwicklung > Golang > Go Structs: Was ist der Unterschied zwischen „struct{}' und „struct{}{}?'.

Go Structs: Was ist der Unterschied zwischen „struct{}' und „struct{}{}?'.

Mary-Kate Olsen
Freigeben: 2024-12-08 16:05:12
Original
656 Leute haben es durchsucht

Go Structs: What's the Difference Between `struct{}` and `struct{}{}?`

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:

  • Nullgröße: Ein struct{}-Wert belegt keinen Speicher, was ihn besonders nützlich für platzsparende Szenarien macht.

Verwendung:

var emptyStruct struct{}
Nach dem Login kopieren

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{}{}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage