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.
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.
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!