Sobes.tech
Junior — Middle

¿Cómo se implementan las cadenas y cómo están relacionadas con los runas en el lenguaje Go?

sobes.tech AI

Respuesta de la IA

En el lenguaje Go, las cadenas se representan mediante el tipo string, que es una secuencia inmutable de bytes, generalmente en codificación UTF-8. Esto significa que una cadena es un segmento de bytes, no de caracteres.

Las runas (rune) son un tipo que representa un punto de código Unicode (int32). Para trabajar con caracteres Unicode en una cadena, se convierte la cadena en un segmento de runas, lo que permite manejar correctamente caracteres multibyte.

Ejemplo:

s := "Привет"
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r) // i — índice del byte, r — la runa (carácter)
}

runes := []rune(s) // conversión de la cadena a un segmento de runas
fmt.Println(runes[0]) // primer carácter como una runa

Por lo tanto, en Go, las cadenas son secuencias de bytes, y las runas son caracteres individuales Unicode, lo que permite trabajar correctamente con textos multilingües.