Junior — Middle
¿Cómo determinar el tamaño en bytes que ocupa un solo carácter en una cadena?
sobes.tech AI
Respuesta de la IA
En Go, la cadena (string) representa una secuencia de bytes en codificación UTF-8. Para determinar cuántos bytes ocupa un carácter (una rune), es necesario tener en cuenta que diferentes caracteres pueden ocupar diferentes cantidades de bytes.
Si necesitas saber el tamaño de un carácter específico en bytes, puedes convertir la cadena en un slice de runas ([]rune) y comparar la longitud de la cadena original con la longitud del slice de runas.
Ejemplo:
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("Carácter: %c ocupa %d bytes\n", r, width)
w = width
}
}
Aquí, utf8.DecodeRuneInString devuelve la rune y la cantidad de bytes que ocupa. De esta manera, se puede determinar el tamaño de cada carácter en bytes.