func main() {
t0 := time.Now()
builder := strings.Builder{}
for i := 0; i < 100_000; i++ {
builder.WriteString("falcon")
}
t1 := time.Now()
result := ""
for i := 0; i < 100_000; i++ {
result += "falcon"
}
t2 := time.Now()
fmt.Println(t1.Sub(t0))
fmt.Println(t2.Sub(t1))
}
$ go run compare.go
2.232505ms
8.007376273s
На 100к конкатенациях* слова "falcon" разница в 3500 раз. Мало кому придется так много конкатенировать, но если вдруг - на хайлоаде лучше использовать Builder.
*конкатенация - это когда к одной строке прибавляешь другую. «hi» + «mom» = «himom»
Источник