Maison >développement back-end >Golang >Go Structs : quelle est la différence entre `struct{}` et `struct{}{} ?`
structs dans Go : struct{} et struct{}{} démystifiés
Dans Go, struct est une construction puissante utilisée pour définir des données genres. Cependant, il existe deux cas particuliers de structures qui méritent d'être examinées : struct{} et struct{}.
struct{} : la structure à élément zéro
struct{} est un type struct sans éléments nommés. Il sert à plusieurs fins utiles :
Utilisation :
var emptyStruct struct{}
struct{} : composite vide Literal
struct{}{} est un littéral composite qui construit une valeur de structure vide. Les littéraux composites permettent d'initialiser de manière concise les valeurs de types spécifiques. Pour struct{}, la syntaxe est simple :
var emptyStructValue = struct{}{}
Utilisation dans une implémentation d'ensemble
Une application pratique de la structure vide consiste à créer des données de type ensemble structure à l’aide d’une carte Go. Puisqu'une carte n'autorise que des clés uniques, nous pouvons utiliser struct{} comme type de valeur pour créer un ensemble d'éléments uniques sans stocker aucune valeur :
type Set map[string]struct{} func main() { set := make(Set) set["foo"] = struct{}{} set["bar"] = struct{}{} _, ok := set["foo"] println("Is \"foo\" in the set?", ok) }
Conclusion
struct{} et struct{}{} offrent des fonctionnalités uniques qui étendent l'utilité du système struct de Go. La structure à élément zéro offre une efficacité de mémoire, tandis que le littéral composite vide aide à créer des valeurs de structure vides ou à construire des structures de données de type ensemble.
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!