Maison >développement back-end >Golang >Comment puis-je récupérer efficacement toutes les clés d'une Go Map sous forme de tranche ?

Comment puis-je récupérer efficacement toutes les clés d'une Go Map sous forme de tranche ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 20:49:15449parcourir

How Can I Efficiently Retrieve All Keys from a Go Map as a Slice?

Récupération efficace des tranches de clés à partir de Go Maps

Dans Go, récupérer une tranche de clés à partir d'une carte peut sembler un processus simple, mais il y a place à l'optimisation. Considérez le scénario suivant :

i := 0
keys := make([]int, len(mymap))
for k := range mymap {
    keys[i] = k
    i++
}

Ce code parcourt la carte, copiant chaque clé dans les clés de tranche. Cependant, il existe un moyen plus concis et efficace d'obtenir le même résultat :

keys := make([]int, len(mymap))
i := 0
for k := range mymap {
    keys[i] = k
    i++
}

En pré-attribuant la tranche avec la bonne taille, nous éliminons les réallocations inutiles lors de l'itération. De plus, nous pouvons éliminer l’opération d’ajout en attribuant directement des valeurs aux membres du tableau. Cela améliore non seulement la lisibilité du code, mais également les performances, comme le montrent les tests impliquant de grandes cartes avec des clés aléatoires.

Dans la plupart des cas, la différence de performances peut être négligeable. Cependant, lorsque vous travaillez avec de grands ensembles de données, ces optimisations peuvent entraîner des gains d'efficacité significatifs.

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!

Déclaration:
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