Sobes.tech
Senior

¿Cuáles son las formas de concatenar cadenas en Go? ¿En qué se diferencian + y strings.Builder?

sobes.tech AI

Respuesta de la IA

En Go, hay varias formas de concatenar cadenas:

  1. Operador + — simple y conveniente para una pequeña cantidad de cadenas.
  2. strings.Builder — método eficiente para concatenaciones múltiples, especialmente en bucles.
  3. bytes.Buffer — similar a strings.Builder, pero trabaja con bytes.
  4. fmt.Sprintf — formateo de cadenas, pero menos eficiente para concatenaciones simples.

Diferencia entre + y strings.Builder:

  • + crea una nueva cadena en cada unión, lo que lleva a asignaciones de memoria y copias de datos. Para pocas operaciones, esto no es crítico.
  • strings.Builder usa un búfer interno que se expande según sea necesario, minimizando asignaciones de memoria y copias. Esto es mucho más eficiente en muchas operaciones de concatenación.

Ejemplo:

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

Utiliza + para casos simples y strings.Builder para concatenaciones complejas o grandes.