Comprendre la différence entre l'initialisation de la carte avec et sans faire
Lorsque vous traitez des cartes dans Go, vous pouvez rencontrer deux formes distinctes d'initialisation:
1. Utilisation d'une carte littérale:
var m = map[string]int{}
2. Utilisation de la fonction Make:
var m = make(map[string]int)
Différences fonctionnelles:
La distinction principale réside dans la façon dont les cartes sont initialisées. Le deuxième formulaire, en utilisant Make, produit toujours une carte vide. Cependant, le premier formulaire est un cas unique d'un littéral de carte. Les littéraux de cartes peuvent construire des cartes avec des paires de valeurs clés initiales. Par exemple:
m := map[bool]string{false: "FALSE", true: "TRUE"}
l'équivalence et les performances:
la version généralisée de votre exemple,
m := map[T]U{}
m: = map [t] u {}
m := map[T]U{}Invoquer Make:
m: = make (map [t] u)
En termes de performances, les deux approches se comportent de manière identique lors de la création de cartes vides. Cela peut être fait en ajoutant un argument entier à la fonction Make:
m: = make (map [t] u, 50)Cela initialise une carte avec l'espace alloué à 50 éléments. La pré-allocation peut réduire les allocations futures de la mémoire si vous anticipez la croissance de la carte.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3