Maison > développement back-end > Golang > Quelle est la différence entre `map[T]U{}` et `make(map[T]U)` dans Go ?

Quelle est la différence entre `map[T]U{}` et `make(map[T]U)` dans Go ?

Patricia Arquette
Libérer: 2024-12-04 17:26:11
original
410 Les gens l'ont consulté

What's the Difference Between `map[T]U{}` and `make(map[T]U)` in Go?

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{}
Copier après la connexion
var m = make(map[string]int)
Copier après la connexion

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"}
Copier après la connexion

Littéraux de carte vides

Maintenant, l'exemple dans votre question :

m := map[T]U{}
Copier après la connexion

C'est un littéral de carte sans valeurs initiales (paires clé/valeur). Cela équivaut à :

m := make(map[T]U)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal