Concatena le stringhe in modo efficiente in Go
-
Con l’operatore Plus (
+
) -
Con più argomenti nella funzione
Print()
-
Con la funzione
Join()
-
Metodo
Sprintf()
-
Metodo
bytes.Buffer
-
Metodo
strings.Builder
-
Aggiungi con l’operatore
+=
- Confronto di metodi diversi
L’atto di fondere due o più stringhe
in un’unica nuova stringa
è chiamato concatenazione di stringhe
. La concatenazione di stringhe
è una delle operazioni più ampiamente eseguite nella programmazione. In questo articolo, discuteremo diversi metodi per concatenare le stringhe nel linguaggio di programmazione Go con i loro pro e contro.
Con l’operatore Plus (+
)
L’uso di +
è il metodo più semplice e più utilizzato per la concatenazione di stringhe. A volte l’operatore +
è anche chiamato operatore di concatenazione.
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)
}
Produzione:
str_1: Welcome to
str_2: the Blog!!
Combined String: Welcome to the Blog!!
Con più argomenti nella funzione Print()
Possiamo passare più stringhe come argomenti alla funzione Print()
in Go
. Le stringhe vengono concatenate automaticamente aggiungendo uno spazio bianco tra le stringhe.
package main
import "fmt"
func main() {
fmt.Println("String", "Concatenation!!")
}
Produzione:
String Concatenation!!
Con la funzione Join()
Possiamo anche concatenare stringhe usando la funzione join()
presente nel pacchetto di stringhe che prende una fetta di stringhe e un separatore per unirle producendo una singola stringa.
Sintassi:
func Join(str []string, sep string) string
dove str
è la fetta di stringhe da cui concateniamo elementi e sep
è il separatore posto tra le sezioni.
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)
}
Produzione:
This-is-String-Concatenation!!
Metodo Sprintf()
L’uso del metodo Sprintf()
nel pacchetto fmt
è anche uno dei metodi più semplici per la concatenazione di stringhe.
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)
}
Produzione:
We will Rock You!!
Metodo bytes.Buffer
Un modo efficiente per concatenare stringhe senza la generazione di oggetti stringa non necessari è il metodo bytes.Buffer
. Possiamo scrivere stringhe nel buffer di byte usando il metodo WriteString()
e poi trasformarlo in stringa.
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())
}
Produzione:
Hello World!!
Metodo strings.Builder
Questo metodo consente una concatenazione efficiente di stringhe utilizzando una memoria molto inferiore rispetto ad altri.
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())
}
Produzione:
Hello World!!
Aggiungi con l’operatore +=
È simile alla concatenazione di stringhe che utilizza l’operatore più ma leggermente più corto del precedente. L’operatore +=
aggiunge una nuova stringa a destra della stringa specificata.
package main
import "fmt"
func main() {
str_1 := "Hello "
str_1 += "World!!"
fmt.Println("Final String:", str_1)
}
Produzione:
Final String: Hello World!!
Confronto di metodi diversi
I metodi bytes.Buffer
e strings.Builder
sono molto più veloci di altri metodi di concatenazione di stringhe. Quindi, quando dobbiamo eseguire la concatenazione di stringhe in una quantità enorme, preferiamo i metodi bytes.Buffer
e strings.Builder
. Tuttavia, quando il numero di concatenazioni è piccolo, possiamo usare gli operatori +
o +
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn