Maison >développement back-end >Golang >Comment puis-je découper efficacement les clés d'une carte Go ?

Comment puis-je découper efficacement les clés d'une carte Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-27 17:50:11532parcourir

How Can I Efficiently Slice Keys from a Go Map?

Découper les clés de Maps dans Go

Question :

Existe-t-il un moyen plus efficace obtenir une tranche de clés d'une carte dans Go ?

Actuellement, une approche courante consiste à parcourir la carte en copiant les clés dans une tranche :

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

Réponse :

L'utilisation de la fonction make avec la capacité de tranche spécifiée peut améliorer l'efficacité en éliminant le besoin de réallocations :

keys := make([]int, len(mymap))

i := 0
for k := range mymap {
    keys[i] = k
    i++
}

Cette approche est légèrement plus concise et élimine la surcharge associée à l'ajout à une tranche. Lors de tests avec des cartes contenant un grand nombre de clés, il s'est avéré 20 % plus rapide que l'utilisation de la fonction append.

Bien que la fonction make définisse la capacité de la tranche, il convient de noter que l'ajout entraîne toujours certains vérification supplémentaire si la capacité a été atteinte à chaque ajout. L'affectation directe des membres du tableau peut améliorer les performances dans ce cas.

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