Ini pertanyaan lama, tapi ini dua sen saya. Jawaban PeterSO sedikit lebih ringkas, tetapi sedikit kurang efisien. Anda sudah tahu seberapa besar itu sehingga Anda bahkan tidak perlu menggunakan append:
keys := make([]int, len(mymap))
i := 0
for k := range mymap {
keys[i] = k
i++
}
Dalam kebanyakan situasi mungkin tidak akan membuat banyak perbedaan, tapi itu tidak banyak bekerja, dan dalam pengujian saya (menggunakan peta dengan 1.000.000 int64
kunci acak dan kemudian menghasilkan array kunci sepuluh kali dengan masing-masing metode), itu tentang 20% lebih cepat untuk menetapkan anggota array secara langsung daripada menggunakan append.
Meskipun pengaturan kapasitas menghilangkan realokasi, append masih harus melakukan pekerjaan ekstra untuk memeriksa apakah Anda telah mencapai kapasitas pada setiap append.