Junior — Middle
Como determinar o tamanho em bytes de um único caractere numa string?
sobes.tech IA
Resposta da IA
Em Go, a string (string) representa uma sequência de bytes codificados em UTF-8. Para determinar quantos bytes ocupa um caractere (uma rune), é necessário considerar que diferentes caracteres podem ocupar diferentes quantidades de bytes.
Se precisar saber o tamanho de um caractere específico em bytes, pode converter a string para um slice de runas ([]rune) e comparar o comprimento da string original com o comprimento do slice de runas.
Exemplo:
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("Caractere: %c ocupa %d bytes\n", r, width)
w = width
}
}
Aqui, utf8.DecodeRuneInString retorna a rune e o número de bytes que ela ocupa. Assim, é possível determinar o tamanho de cada caractere em bytes.