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!