Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gelten anonyme Strukturdeklarationen in Go als „Kurznotation“?

Warum gelten anonyme Strukturdeklarationen in Go als „Kurznotation“?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 09:29:29641Durchsuche

  Why are Anonymous Struct Declarations in Go Considered

Unterschiede zwischen anonymen Strukturdeklarationen verstehen

Anonyme Strukturen sind eine bequeme Möglichkeit, Strukturen zu definieren, ohne ihnen einen Namen zuzuweisen. Sie werden hauptsächlich in Situationen verwendet, in denen eine bestimmte Strukturdefinition nicht entscheidend ist oder wenn die Struktur nur dazu gedacht ist, Daten zu speichern und weiterzugeben. Der folgende Codeausschnitt demonstriert zwei Methoden zum Deklarieren anonymer Strukturen in Go:

<code class="go">var Foo = map[string]struct{}{
  "foo": struct{}{},
}</code>
<code class="go">var Foo = map[string]struct{}{
  "foo": {},
}</code>

In der ersten Deklaration wird ein expliziter Typ als struct{}{} angegeben. Diese redundante Typdeklaration ist unnötig, da Gogland sie korrekt als Warnung identifiziert. Go erlaubt das Weglassen des Typs in zusammengesetzten Literalen, wenn der Typ aus dem Kontext abgeleitet werden kann.

In der zweiten Deklaration wird der Typ weggelassen, was zur Form {} führt. Dies wird manchmal als „kurze Notation“ bezeichnet, da der Typ nicht explizit angegeben werden muss. Wenn ein zusammengesetztes Literal innerhalb einer Karte verwendet wird, können die Typen von Schlüssel und Wert aus dem Kartentyp selbst abgeleitet werden.

Daher lautet die Deklaration Foo = map[string]struct{}{"foo": {}} entspricht dem ersten, jedoch mit der von der Go-Sprache erlaubten Typauslassung. Diese kurze Notation ändert nichts an der Funktionalität der anonymen Struktur; es ist lediglich ein syntaktischer Unterschied.

Das obige ist der detaillierte Inhalt vonWarum gelten anonyme Strukturdeklarationen in Go als „Kurznotation“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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