Senior
¿Qué es una cadena en Go? ¿Cuál es su estructura y características?
sobes.tech AI
Respuesta de la IA
En Go, una cadena (string) es una secuencia inmutable de bytes, generalmente representando texto en codificación UTF-8. Estructuralmente, una cadena se implementa como una estructura con dos campos: un puntero a un array de bytes y una longitud.
Características de las cadenas en Go:
- Inmutabilidad: después de crearla, no se puede modificar. Cualquier operación que cambie su contenido crea una nueva cadena.
- UTF-8: las cadenas almacenan bytes en UTF-8, lo que permite trabajar con caracteres Unicode.
- Acceso por bytes: indexar una cadena devuelve un byte, no un carácter (rune). Para trabajar con caracteres, se debe usar el paquete
unicode/utf8o convertir la cadena en un slice de runas.
Ejemplo de estructura de cadena (simplificado):
// string en Go aproximadamente así:
type stringStruct struct {
ptr *byte
len int
}
Ejemplo de trabajo con una cadena:
s := "Привет"
fmt.Println(len(s)) // número de bytes
runes := []rune(s)
fmt.Println(len(runes)) // número de caracteres (runes)