Junior — Middle
Quali sono le caratteristiche durante l'iterazione dei caratteri di una stringa in programmazione?
sobes.tech AI
Risposta dell'AI
In Go, le stringhe sono rappresentate come sequenze di byte, ma spesso contengono caratteri codificati in UTF-8, dove un carattere (una rune) può occupare più byte. Scorrendo una stringa per indici (ad esempio, for i := 0; i < len(s); i++) si attraversano i byte, non i caratteri, il che può portare a un'elaborazione errata di caratteri multibyte.
Per scorrere correttamente i caratteri, si utilizza un ciclo for range, che itera sulle rune (punti di codice Unicode):
s := "Привет"
for i, r := range s {
fmt.Printf("indice: %d, carattere: %c\n", i, r)
}
Qui, i è l'indice del primo byte della rune nella stringa, e r è la rune stessa. Questo è importante per lavorare correttamente con testi multilingue e caratteri al di fuori dell'ASCII.