İçeriğe geç

Döngüde String Birleştirme (ARCH5070)

Anahtar go.performance.string-concat-in-loop · Önem warning · Kategori performance

Go’da string’ler değişmezdir; döngü içinde += ile birleştirmek her yinelemede yeni bir tampon tahsis edip kopyalar, sonuçta O(n^2) maliyete yol açar. Bunun yerine strings.Builder kullanın.

func join(items []string) string {
var result string
for _, item := range items {
result += item + ","
}
return result
}
func join(items []string) string {
var b strings.Builder
for _, item := range items {
b.WriteString(item)
b.WriteByte(',')
}
return b.String()
}

Döngü içinde += yerine strings.Builder kullanarak tek tamponda biriktirin.