Cómo concatenar eficientemente las cadenas en Go
-
Con el operador plus (
+
) -
Con múltiples argumentos en la función
Print()
-
Con la función
Join()
-
Método
Sprintf()
-
Método
bytes.Buffer
-
Método
strings.Builder
-
Añadir con
+=
Operador - 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 cadenas. 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 Print()
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 cadenas que toma una rebanada de cadenas y un separador para unirlas y producir una sola cadena.
Sintaxis:
func Join(str []string, sep string) string
donde str
es el trozo de cadena 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 cadenas 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 cadenas 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 cadenas. 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 +=
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn