Anonyme Struktur in Go Maps: Was ist der Unterschied zwischen „struct{}{}' und „{}'?

DDD
Freigeben: 2024-10-30 03:55:03
Original
450 Leute haben es durchsucht

 Anonymous Struct in Go Maps: What's the Difference Between `struct{}{} `and `{}`?

Anonyme Struktur: Eintauchen in die Unterschiede zwischen struct{}{} und {}

Problem:

In Go Die Verwendung einer anonymen Struktur als Wert in einer Kartendeklaration führt zu einer Warnung bei Gogland und wirft die Frage auf: Was ist der Unterschied zwischen den Deklarationen struct{}{} und {} in solchen Kontexten?

Antwort:

Das Verständnis der Semantik hinter diesen beiden Syntaxen ist von entscheidender Bedeutung.

Aufschlüsselung der Deklarationen

  • struct{}{}: Dies ist ein zusammengesetztes Literal, das aus dem anonymen Strukturtyp struct{} und dem Wert {} besteht.
  • {}: Dies ist ebenfalls ein zusammengesetztes Literal, das nur den Wert {} ohne explizite Darstellung darstellt Angabe seines Typs.

Typinferenz und zusammengesetzte Literale

Typischerweise erfordern zusammengesetzte Literale eine explizite Typdeklaration (z. B. []int{1, 2, 3}). Beim Arbeiten mit Karten kann der Compiler jedoch die Schlüssel- und Wertetypen aus dem Kartentyp selbst ableiten. Dadurch kann die zusammengesetzte Literalsyntax vereinfacht werden, indem die Typdeklaration weggelassen wird, wenn Werte des entsprechenden Typs bereitgestellt werden.

Go-Spezifikation und Aufsicht

Gemäß der Go-Spezifikation gilt in Fällen wie diesen: Die Typdeklaration kann weggelassen werden, wenn der Typ des zusammengesetzten Literals mit dem von der Karte erwarteten Typ übereinstimmt. Dieses Verhalten war ursprünglich ein Versehen, wurde aber in Go 1.5 zu einer gültigen Funktion.

Hinweis: Die Typdeklaration kann beim Initialisieren anderer Arten zusammengesetzter Literale (z. B. Arrays, Slices) nicht weggelassen werden.

Das obige ist der detaillierte Inhalt vonAnonyme Struktur in Go Maps: Was ist der Unterschied zwischen „struct{}{}' und „{}'?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!