Maison  >  Article  >  développement back-end  >  Pourquoi les déclarations de structure anonymes dans Go sont-elles considérées comme des « notations courtes » ?

Pourquoi les déclarations de structure anonymes dans Go sont-elles considérées comme des « notations courtes » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-28 09:29:29641parcourir

  Why are Anonymous Struct Declarations in Go Considered

Comprendre les différences entre les déclarations de structure anonymes

Les structures anonymes sont un moyen pratique de définir des structures sans leur attribuer de nom. Ils sont principalement utilisés dans les situations où une définition de structure spécifique n'est pas cruciale ou lorsque la structure est uniquement destinée à contenir et transmettre des données. L'extrait de code suivant montre deux méthodes pour déclarer des structures anonymes dans Go :

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

Dans la première déclaration, un type explicite est spécifié comme struct{}{}. Cette déclaration de type redondante est inutile car Gogland l'identifie correctement comme un avertissement. Go permet l'omission du type dans les littéraux composites lorsque le type est déductible du contexte.

Dans la deuxième déclaration, le type est omis, ce qui donne la forme {}. Ceci est parfois appelé « notation courte » car cela ne nécessite pas de spécifier explicitement le type. Lorsqu'un littéral composite est utilisé dans une carte, les types de clé et de valeur peuvent être déduits du type de carte lui-même.

Par conséquent, la déclaration Foo = map[string]struct{}{"foo": {}} est équivalent au premier, mais avec l'omission de type autorisée par le langage Go. Cette notation courte ne modifie pas la fonctionnalité de la structure anonyme ; c'est simplement une différence syntaxique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn