İçeriğe geç

Büyük Koleksiyon Kopyası (ARCH5086)

Anahtar go.performance.large-collection-copy · Önem info · Kategori performance

Nihai boyut bilinirken append’i sıfır kapasiteli bir slice üzerinde çalıştırmak tekrarlı yeniden tahsis ve kopya doğurur. make ile kapasiteyi önceden ayırın.

func double(in []int) []int {
var out []int
for _, n := range in {
out = append(out, n*2)
}
return out
}
func double(in []int) []int {
out := make([]int, 0, len(in))
for _, n := range in {
out = append(out, n*2)
}
return out
}

Hedef slice’ı make([]T, 0, len(in)) ile kapasitesini önceden ayırarak oluşturun.