Sobes.tech
Junior

¿Qué representa el tipo de dato string en el lenguaje Golang?

sobes.tech AI

Respuesta de la IA

En Golang, string es una secuencia inmutable de bytes.

Características clave:

  • Inmutabilidad: Después de crear una cadena, no se puede modificar. Cualquier operación que modifique la cadena en realidad crea una nueva cadena.
  • Representación: La cadena contiene una secuencia de bytes. Por defecto, Golang asume que estos bytes representan texto codificado en UTF-8.
  • Longitud: La longitud de la cadena (len(s)) devuelve el número de bytes en la cadena, no el número de runas (símbolos).
  • Indexación: Acceder a los elementos de la cadena por índice (s[i]) devuelve el byte en ese índice.
  • Runas: Para trabajar con caracteres (runas), se utiliza la iteración sobre la cadena con un ciclo for range, que decodifica UTF-8 y proporciona las runas y sus índices.

Ejemplo:

// Inicialización de la cadena
s := "Привет, мир!" // 23 bytes, 12 runas

// Longitud de la cadena (en bytes)
byteLength := len(s) // byteLength = 23

// Acceso al byte por índice
firstByte := s[0] // firstByte = 208 (byte 'П' en UTF-8)

// Iteración sobre las runas
runeCount := 0
for index, runeValue := range s {
	// index - índice de inicio de la runa en la cadena (en bytes)
	// runeValue - la runa decodificada
	runeCount++
}
// runeCount = 12