Sobes.tech
Junior — Middle

Come vengono implementate le stringhe e come sono collegate alle rune nel linguaggio Go?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go, le stringhe sono rappresentate dal tipo string, che è una sequenza immutabile di byte, solitamente codificata in UTF-8. Ciò significa che una stringa è una sequenza di byte, non di caratteri.

Le rune (rune) sono un tipo che rappresenta un punto di codice Unicode (int32). Per lavorare con i caratteri Unicode in una stringa, questa viene convertita in una sequenza di rune, consentendo di gestire correttamente i caratteri multibyte.

Esempio:

s := "Привет"
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r) // i — indice del byte, r — rune (carattere)
}

runes := []rune(s) // conversione della stringa in una sequenza di rune
fmt.Println(runes[0]) // primo carattere come rune

Pertanto, le stringhe in Go sono sequenze di byte, e le rune sono singoli caratteri Unicode, il che permette di lavorare correttamente con testi multilingue.