Sobes.tech
Junior

Como concatenar strings de forma eficiente em Go?

sobes.tech IA

Resposta da IA

Formas eficazes:

  1. +=: Menos eficiente para concatenações múltiplas devido à criação de novas strings em cada iteração.

  2. strings.Join: Ideal para juntar um slice de strings com um delimitador.

  3. fmt.Sprintf: Conveniente para formatação, mas pode ser mais lento que outros métodos para concatenações simples.

  4. strings.Builder: Mais eficiente para construir strings longas a partir de múltiplos fragmentos, evitando alocações desnecessárias.

// Exemplo com strings.Builder
import "strings"

var builder strings.Builder
builder.WriteString("Hello")
builder.WriteString(" ")
builder.WriteString("World")
result := builder.String() // Obter a string resultante
  1. bytes.Buffer: Semelhante a strings.Builder, mas trabalha com slices de bytes. É eficiente ao trabalhar com dados que não são necessariamente strings UTF-8.
// Exemplo com bytes.Buffer
import "bytes"

var buffer bytes.Buffer
buffer.WriteString("Byte")
buffer.WriteString(" ")
buffer.WriteString("Data")
result := buffer.String() // Obter a string resultante

A escolha do método depende da tarefa específica:

  • Concatenação única: + ou fmt.Sprintf.
  • União de slices de strings: strings.Join.
  • Construção de uma string longa a partir de múltiplos fragmentos em um ciclo: strings.Builder.
  • Trabalho com bytes: bytes.Buffer.