Cómo concatenar eficientemente las cuerdas en Go

  1. Con el operador plus (+)
  2. Con múltiples argumentos en la función Print()
  3. Con la función join()
  4. Método Sprintf()
  5. Método bytes.Buffer
  6. Método strings.Builder
  7. Añadir con += Operador
  8. Comparación de diferentes métodos

El acto de fusionar dos o más cadenas en una sola cadenas nueva se llama Concatenación de cadenas. La Concatenación de cadenas es una de las operaciones más realizadas en la programación. En este artículo, discutiremos diferentes métodos para concatenar cadenas en el lenguaje de programación Go con sus pros y contras.

Con el operador plus (+)

Usar + es el método más simple y más ampliamente utilizado para la concatenación de cuerdas. A veces el operador + también se llama operador de concatenación.

package main

import "fmt"

func main() {

    str_1 := "Welcome to "
    str_2 := "the Blog!!"
    fmt.Println("str_1: ", str_1)
    fmt.Println("str_2: ", str_2)
    fmt.Println("Combined String: ", str_1+str_2)
}

Producción:

str_1:  Welcome to 
str_2:  the Blog!!
Combined String:  Welcome to the Blog!!

Con múltiples argumentos en la función Print()

Podemos pasar múltiples cadenas como argumentos a la función Imprimir en Go. Las cadenas se concatenan automáticamente añadiendo espacios en blanco entre ellas.

package main

import "fmt"

func main() {

    fmt.Println("String", "Concatenation!!")
}      

Producción:

String Concatenation!!

Con la función join()

También podemos concatenar cadenas usando la función join() presente en el paquete de cuerdas que toma una rebanada de cuerdas y un separador para unirlas y producir una sola cuerda.

Sintaxis:

func Join(str []string, sep string) string

donde str es el trozo de cuerda del que concatenamos los elementos y sep es el separador que se coloca entre los trozos.

   package main

import (
    "fmt"
    "strings" //for join() function
)

func main() {

    str_slices := []string{"This", "is",
        "String", "Concatenation!!"}

    str_concat := strings.Join(str_slices, "-")
    fmt.Println(str_concat)
}
  

Producción:

This-is-String-Concatenation!!

Método Sprintf()

Usar el método Sprintf() en el paquete fmt es también uno de los métodos más simples para la concatenación de cadenas.

package main

import "fmt"

func main() {
    str_1 := "We will"
    str_2 := " Rock"
    str_3 := " You!!"

    str_final := fmt.Sprintf("%s%s%s", str_1, str_2, str_3)

    fmt.Println(str_final)
} 

Producción:

We will Rock You!!

Método bytes.Buffer

Una forma eficiente de concatenar cadenas sin generar el innecesario objeto cadena es el método bytes.Buffer. Podemos escribir cadenas en un búfer de bytes usando el método WriteString() y luego transformarlo en cadena.

package main

import (
    "bytes"
    "fmt"
)

func main() {
    var byte_buf bytes.Buffer

    byte_buf.WriteString("Hello ")
    byte_buf.WriteString("World!!")

    fmt.Println(byte_buf.String())
}

Producción:

Hello World!!

Método strings.Builder

Este método permite una concatenación eficiente de las cuerdas utilizando muy poca memoria en comparación con otros.

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str_build strings.Builder
    str_build.WriteString("Hello ")
    str_build.WriteString("World!!")
    fmt.Println(str_build.String())
}

Producción:

Hello World!!

Añadir con += Operador

Es similar a la concatenación de cuerdas usando el operador plus pero ligeramente más corta que la anterior. El operador += añade una nueva cadena a la derecha de la cadena especificada.

package main

import "fmt"

func main() {
    str_1 := "Hello "

    str_1 += "World!!"
    fmt.Println("Final String:", str_1)

}

Producción:

Final String: Hello World!!

Comparación de diferentes métodos

Los métodos bytes.Buffer y strings.Builder son bastante más rápidos que otros métodos de concatenación de cuerdas. Por lo tanto, cuando tenemos que realizar la concatenación de cadenas en una gran cantidad, preferimos los métodos bytes.Buffer y strings.Builder. Sin embargo, cuando el número de concatenaciones es pequeño, podemos usar los operadores + o +=.

Artículo relacionado - Go String

  • Cómo analizar la cadena de fechas en Go
  • Cómo escribir cuerdas multilíneas en Go
  • comments powered by Disqus