Sobes.tech
Junior

Cum se concatenează eficient șirurile în Go?

sobes.tech AI

Răspuns de la AI

Metode eficiente:

  1. +=: Cel mai puțin eficient pentru concatenări multiple din cauza creării de noi șiruri la fiecare iterație.

  2. strings.Join: Ideal pentru unirea unui slice de șiruri cu un separator.

  3. fmt.Sprintf: Convenabil pentru formatare, dar poate fi mai lent decât alte metode pentru concatenări simple.

  4. strings.Builder: Cel mai eficient pentru construirea de șiruri lungi din mai multe fragmente, evitând alocările inutile.

// Exemplu cu strings.Builder
import "strings"

var builder strings.Builder
builder.WriteString("Hello")
builder.WriteString(" ")
builder.WriteString("World")
result := builder.String() // Obținerea șirului rezultat
  1. bytes.Buffer: Similar cu strings.Builder, dar funcționează cu slice-uri de bytes. Eficient când se lucrează cu date care nu sunt neapărat șiruri UTF-8.
// Exemplu cu bytes.Buffer
import "bytes"

var buffer bytes.Buffer
buffer.WriteString("Byte")
buffer.WriteString(" ")
buffer.WriteString("Data")
result := buffer.String() // Obținerea șirului rezultat

Alegerea metodei depinde de sarcina specifică:

  • Concatenare unică: + sau fmt.Sprintf.
  • Combinarea unui slice de șiruri: strings.Join.
  • Construirea unui șir lung din mai multe fragmente într-un ciclu: strings.Builder.
  • Lucrul cu bytes: bytes.Buffer.