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:
- Operador
+— simples e conveniente para um pequeno número de strings. strings.Builder— método eficiente para concatenações múltiplas, especialmente em ciclos.bytes.Buffer— semelhante aostrings.Builder, mas trabalha com bytes.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.Builderusa 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.