Junior — Middle
Come determinare la dimensione in byte di un singolo carattere in una stringa?
sobes.tech AI
Risposta dell'AI
In Go, una stringa (string) rappresenta una sequenza di byte codificati in UTF-8. Per determinare quanti byte occupa un carattere (una rune), bisogna considerare che diversi caratteri possono occupare un numero diverso di byte.
Se si desidera conoscere la dimensione di un carattere specifico in byte, si può convertire la stringa in un slice di rune ([]rune) e confrontare la lunghezza della stringa originale con quella del slice di rune.
Esempio:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "Привет"
for i, w := 0, 0; i < len(s); i += w {
r, width := utf8.DecodeRuneInString(s[i:])
fmt.Printf("Carattere: %c occupa %d byte\n", r, width)
w = width
}
}
Qui, utf8.DecodeRuneInString restituisce la rune e il numero di byte che essa occupa. In questo modo, si può determinare la dimensione di ogni carattere in byte.