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