Comprendre la structure vide dans Go : struct{} et struct{}{}
Dans Go, le mot-clé struct définit une donnée structurée type composé d’éléments nommés. Cependant, struct{} et struct{}{}, souvent rencontrés dans le code Go idiomatique, méritent une attention particulière.
struct{} : Une structure vide
La struct {} est un cas particulier représentant une structure vide sans élément. Il a la propriété unique d'être de taille nulle, ce qui signifie qu'aucune mémoire n'est allouée à une valeur de ce type.
struct{}{} en tant que littéral composite
En revanche, struct{}{}, écrit de la même manière que int{5} ou []string{"Go", "Python"}, est un littéral composite qui construit explicitement une valeur de type struct{}. Ce littéral n'a pas de champs puisque struct{} n'a pas d'éléments définis.
Applications des structures vides
Les structures vides peuvent trouver diverses utilisations dans le code Go :
Exemple : Création d'un ensemble à l'aide d'un vide Struct
Voici un exemple d'utilisation d'une carte avec un type de valeur struct vide pour créer un ensemble :
package main import "fmt" type Set map[string]struct{} func main() { s := make(Set) s["red"] = struct{}{} s["blue"] = struct{}{} fmt.Println(s) // Prints: map[blue:{} red:{}] }
Notez que cette approche vérifie uniquement l'existence de clés, pas leurs valeurs associées.
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!