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)
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!