C'est une vieille question, mais voici mes deux cents. La réponse de PeterSO est légèrement plus concise, mais légèrement moins efficace. Vous savez déjà quelle sera sa taille, vous n'avez même pas besoin d'utiliser append:
keys := make([]int, len(mymap))
i := 0
for k := range mymap {
keys[i] = k
i++
}
Dans la plupart des situations, cela ne fera probablement pas beaucoup de différence, mais ce n'est pas beaucoup plus de travail, et dans mes tests (en utilisant une carte avec 1000000 de int64
clés aléatoires , puis en générant le tableau de clés dix fois avec chaque méthode), il s'agissait de 20% plus rapide pour affecter les membres du tableau directement que pour utiliser append.
Bien que la définition de la capacité élimine les réallocations, append doit encore effectuer un travail supplémentaire pour vérifier si vous avez atteint la capacité à chaque ajout.