Heim > Backend-Entwicklung > Golang > Was sind anonyme Strukturen und leere Strukturen in Go und wie werden sie zur Signalisierung verwendet?

Was sind anonyme Strukturen und leere Strukturen in Go und wie werden sie zur Signalisierung verwendet?

Mary-Kate Olsen
Freigeben: 2024-12-23 22:14:15
Original
787 Leute haben es durchsucht

What are Anonymous Structs and Empty Structs in Go, and How Are They Used for Signaling?

Anonyme Struktur und leere Struktur

In Go ist eine anonyme Struktur eine Struktur, die keinen Namen hat. Es wird typischerweise zum Erstellen temporärer oder kurzlebiger Datenstrukturen verwendet. Eine leere Struktur hat keine Felder und belegt null Bytes Speicher.

[1. Frage]

Der folgende Code verwendet eine anonyme Struktur, um zu signalisieren, dass ein Krieger den Kampf beendet hat :

done := make(chan struct{})
Nach dem Login kopieren

Der Typ struct{} stellt eine leere Struktur dar. Es wird hier verwendet, weil wir keine Daten in der Struktur speichern müssen. Wir wollen es nur verwenden, um zu signalisieren, dass ein Krieger den Kampf beendet hat.

Die folgende Zeile sendet die leere Struktur an den Fertig-Kanal:

done <- struct{}{}
Nach dem Login kopieren

Die zusätzlichen Klammern sind erforderlich, da das < ; und > Operatoren haben eine niedrigere Priorität als der <-Operator. Ohne die Klammern würde der Code als erledigt <- (struct{}) {} interpretiert werden, wodurch ein Zeiger auf eine leere Struktur anstelle einer leeren Struktur selbst gesendet würde.

[2. Frage ]

Die folgende Zeile wartet darauf, dass alle Krieger den Kampf beenden:

for _ = range langs { <-done }
Nach dem Login kopieren

Diese Zeile verwendet einen Bereichsausdruck vom fertigen Kanal zu empfangen. Das Zeichen _ wird als Platzhaltervariable verwendet, um anzuzeigen, dass uns der empfangene Wert egal ist. Dies liegt daran, dass die von den Kriegern gesendete leere Struktur keine Daten enthält.

Der Bereichsausdruck ist notwendig, da er es dem Programm ermöglicht, zu warten, bis alle Krieger den Kampf beendet haben, bevor es fortfährt. Ohne sie würde das Programm nur warten, bis der erste Krieger den Kampf beendet hat, bevor es fortfährt.

Das obige ist der detaillierte Inhalt vonWas sind anonyme Strukturen und leere Strukturen in Go und wie werden sie zur Signalisierung verwendet?. 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