Sobes.tech
Junior

O que representa o tipo de dado string na linguagem Golang?

sobes.tech IA

Resposta da IA

No Golang, string é uma sequência imutável de bytes.

Características principais:

  • Imutabilidade: Após criar uma string, ela não pode ser alterada. Qualquer operação que modifique a string na verdade cria uma nova string.
  • Representação: A string contém uma sequência de bytes. Por padrão, Golang assume que esses bytes representam texto codificado em UTF-8.
  • Comprimento: O comprimento da string (len(s)) retorna o número de bytes na string, não o número de runas (símbolos).
  • Indexação: Acesso aos elementos da string por índice (s[i]) retorna o byte nesse índice.
  • Runas: Para trabalhar com caracteres (runas), usa-se a iteração sobre a string com um ciclo for range, que decodifica UTF-8 e fornece as runas e seus índices.

Exemplo:

// Inicialização da string
s := "Привет, мир!" // 23 bytes, 12 runas

// Comprimento da string (em bytes)
byteLength := len(s) // byteLength = 23

// Acesso ao byte pelo índice
firstByte := s[0] // firstByte = 208 (byte 'П' em UTF-8)

// Iteração sobre as runas
runeCount := 0
for index, runeValue := range s {
	// index - índice de início da runa na string (em bytes)
	// runeValue - a runa decodificada
	runeCount++
}
// runeCount = 12