Maison > développement back-end > Golang > Quand pouvez-vous omettre \'struct{}{}\' pour les structures anonymes dans Go Maps ?

Quand pouvez-vous omettre \'struct{}{}\' pour les structures anonymes dans Go Maps ?

Susan Sarandon
Libérer: 2024-10-30 14:38:35
original
788 Les gens l'ont consulté

 When Can You Omit

Explorer la différence entre struct{}{} et {} dans Go

Les structures anonymes de Go offrent un moyen pratique de représenter des données simples structures sans définir de type nommé. Cependant, la syntaxe struct{}{} et {} pour créer de telles structures peut soulever des questions sur leur distinction.

Lors de la déclaration d'une carte de chaînes vers des structures anonymes dans Go, comme indiqué ci-dessous :

<code class="go">var Foo = map[string]struct{}{
    "foo": struct{}{},
}</code>
Copier après la connexion

IntelliJ Idea peut générer un avertissement « Déclaration de type redondant ». Pour résoudre ce problème, le code suivant peut être utilisé :

<code class="go">var Foo = map[string]struct{}{
    "foo": {},
}</code>
Copier après la connexion

La différence entre les deux syntaxes réside dans la façon dont le compilateur traite le littéral de structure anonyme incomplet. Dans la première syntaxe, struct{}{}, le type est explicitement spécifié même s'il est anonyme. Dans la deuxième syntaxe, {}, le type est complètement omis.

Selon la spécification du langage Go, dans un littéral composite d'un type de carte, si les types des clés et des valeurs sont connus à partir du type de carte eux-mêmes, ils peuvent être omis lorsqu'il est prévu de spécifier des valeurs de ces types. Cela explique pourquoi le compilateur n'exige pas la spécification de type pour {} dans ce contexte.

Il est important de noter que cette omission n'est valable qu'à partir de Go 1.5 en raison d'un oubli.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal