Comprendre la distinction entre la création de carte avec et sans make
Dans Go, il existe deux manières d'initialiser une carte :
var m = map[string]int{}
var m = make(map[string]int)
Bien que ces éléments puissent sembler similaires, ils ont des implications et des pratiques différentes. considérations.
Création de carte vide avec make
La deuxième forme, make(map[string]int), crée toujours une carte vide. Il s'agit d'un moyen simple d'initialiser une carte sans paires clé-valeur initiales.
Littéraux de carte non vides
La première forme, map[string]int{ }, est un cas particulier de littéral de carte. Les littéraux de carte permettent la création de cartes non vides avec des paires clé-valeur prédéfinies. Par exemple :
m := map[bool]string{false: "FALSE", true: "TRUE"}
Littéraux de carte vides
Maintenant, l'exemple dans votre question :
m := map[T]U{}
C'est un littéral de carte sans valeurs initiales (paires clé/valeur). Cela équivaut à :
m := make(map[T]U)
Par conséquent, le premier formulaire est essentiellement un raccourci pour le second lors de la création d'une carte vide.
Considérations relatives aux performances
En termes de performances, les deux approches sont comparables pour créer une carte vide. Cependant, make a la flexibilité supplémentaire de spécifier une capacité initiale. En spécifiant une plus grande capacité, make pré-alloue suffisamment d'espace en mémoire pour contenir un certain nombre d'éléments. Cela peut être bénéfique pour réduire les allocations futures si vous savez que la carte est susceptible de s'agrandir.
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!