Go - Stringhe
Le stringhe, ampiamente utilizzate nella programmazione Go, sono una porzione di byte di sola lettura. Nel linguaggio di programmazione Go, le stringhe sonoslices. La piattaforma Go fornisce varie librerie per manipolare le stringhe.
- unicode
- regexp
- strings
Creazione di stringhe
Il modo più diretto per creare una stringa è scrivere -
var greeting = "Hello world!"
Ogni volta che incontra una stringa letterale nel codice, il compilatore crea un oggetto stringa con il suo valore in questo caso, "Hello world!".
Un valore letterale stringa contiene sequenze UTF-8 valide chiamate rune. Una stringa contiene byte arbitrari.
package main
import "fmt"
func main() {
var greeting = "Hello world!"
fmt.Printf("normal string: ")
fmt.Printf("%s", greeting)
fmt.Printf("\n")
fmt.Printf("hex bytes: ")
for i := 0; i < len(greeting); i++ {
fmt.Printf("%x ", greeting[i])
}
fmt.Printf("\n")
const sampleText = "\xbd\xb2\x3d\xbc\x20\xe2\x8c\x98"
/*q flag escapes unprintable characters, with + flag it escapses non-ascii
characters as well to make output unambigous */
fmt.Printf("quoted string: ")
fmt.Printf("%+q", sampleText)
fmt.Printf("\n")
}
Ciò produrrebbe il seguente risultato:
normal string: Hello world!
hex bytes: 48 65 6c 6c 6f 20 77 6f 72 6c 64 21
quoted string: "\xbd\xb2=\xbc \u2318"
Note - La stringa letterale è immutabile, quindi una volta creata una stringa letterale non può essere modificata.
Lunghezza della stringa
Il metodo len (str) restituisce il numero di byte contenuti nella stringa letterale.
package main
import "fmt"
func main() {
var greeting = "Hello world!"
fmt.Printf("String Length is: ")
fmt.Println(len(greeting))
}
Ciò produrrebbe il seguente risultato:
String Length is : 12
Concatenazione di stringhe
Il pacchetto di stringhe include un metodo join per concatenare più stringhe -
strings.Join(sample, " ")
Join concatena gli elementi di un array per creare una singola stringa. Il secondo parametro è il separatore che si trova tra gli elementi dell'array.
Guardiamo il seguente esempio:
package main
import ("fmt" "math" )"fmt" "strings")
func main() {
greetings := []string{"Hello","world!"}
fmt.Println(strings.Join(greetings, " "))
}
Ciò produrrebbe il seguente risultato:
Hello world!