Avatar ·

Junção eficiente de strings em Go: como evitar problemas de desempenho?

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema de desempenho ao concatenar um grande número de strings. Em outras linguagens (como Java ou C#), estou acostumado a usar StringBuilder para concatenação eficiente. Em Go, vejo o operador `+`, mas ouvi dizer que ele pode ser lento com muitas operações. Aqui está um exemplo de código que escrevi para montar uma string CSV a partir de um array de dados: ```go package main import ( "fmt" "time" ) func main() { data := make([]string, 10000) for i := 0; i < 10000; i++ { data[i] = fmt.Sprintf("value_%d", i) } start := time.Now() result := "" for _, s := range data { result += s + "," } fmt.Println("Time:", time.Since(start)) fmt.Println("Length:", len(result)) } ``` Este código funciona, mas suspeito que não seja eficiente. Ouvi falar sobre o pacote `strings.Builder` e sobre `bytes.Buffer`, mas não entendo em quais casos usá-los. Minhas perguntas: 1.