Maison > développement back-end > Golang > Quelle est la différence entre `struct{}` et `struct{}{} `dans Go ?

Quelle est la différence entre `struct{}` et `struct{}{} `dans Go ?

DDD
Libérer: 2024-12-11 05:28:13
original
354 Les gens l'ont consulté

What's the Difference Between `struct{}` and `struct{}{} `in Go?

Plonger dans la nature de struct{} et struct{}{} dans Go

Go exploite le concept de struct pour définir des séquences de éléments nommés. Bien que struct{} et struct{}{} puissent sembler similaires, ils possèdent des distinctions subtiles.

struct{} : la structure vide de taille nulle

Une struct{ } représente une structure sans éléments définis. Il existe principalement pour ne contenir aucune donnée. Sa petite taille permet une utilisation efficace de la mémoire sans nécessiter d'espace supplémentaire.

struct{} : un littéral composite pour la structure vide

En revanche, les constructions struct{}{} une valeur de type struct{}. Sa syntaxe présente le type struct suivi d'accolades vides, car aucun champ n'existe.

Exploiter struct{} en pratique : créer un ensemble

Go manque intrinsèquement de données d'ensemble structure, mais les cartes offrent une alternative viable. En définissant le type de valeur d'une carte comme struct{}, nous créons un ensemble analogique qui stocke uniquement les clés. Cette technique maintient l'unicité des clés dans la carte.

Par exemple :

var set map[string]struct{}
set = make(map[string]struct{})
set["red"] = struct{}{}
set["blue"] = struct{}{}
_, ok := set["red"]
fmt.Println("Is red in the map?", ok)
Copier après la connexion

La fonctionnalité de la carte montre la présence ou l'absence de clés, imitant le comportement défini.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal