Sobes.tech
Senior

Quais são as formas de concatenar strings em Go? Qual é a diferença entre + e strings.Builder?

sobes.tech IA

Resposta da IA

No Go, existem várias formas de concatenar strings:

  1. Operador + — simples e conveniente para um pequeno número de strings.
  2. strings.Builder — método eficiente para concatenações múltiplas, especialmente em ciclos.
  3. bytes.Buffer — semelhante ao strings.Builder, mas trabalha com bytes.
  4. fmt.Sprintf — formatação de strings, mas menos eficiente para concatenação simples.

Diferença entre + e strings.Builder:

  • + cria uma nova string a cada união, o que leva à alocação de memória e cópia de dados. Para poucas operações, isso não é crítico.
  • strings.Builder usa um buffer interno que se expande conforme necessário, minimizando alocações de memória e cópias. Isso é muito mais eficiente em muitas operações de concatenação.

Exemplo:

var sb strings.Builder
for _, s := range parts {
    sb.WriteString(s)
}
result := sb.String()

Use + para casos simples e strings.Builder para concatenações complexas ou grandes.