Junior — Middle
O que representa o resultado da execução do operador [] para o tipo de dado string?
sobes.tech IA
Resposta da IA
Em Go, o operador [] para o tipo de dado string é usado para obter uma fatia de bytes da string ou um byte individual por índice. A string em Go é uma sequência imutável de bytes (UTF-8). Ao acessar str[i], é retornado um byte do tipo byte (alias de uint8), e não um caractere no sentido habitual, pois os caracteres Unicode podem ocupar vários bytes.
Exemplo:
s := "Привет"
fmt.Println(s[0]) // Vai mostrar o byte correspondente à primeira parte do caractere 'П'
fmt.Println(string(s[0])) // Vai mostrar um caractere incorreto, pois não é um caractere UTF-8 completo
// Para obter caracteres (runes), é necessário converter a string em um slice de runes:
r := []rune(s)
fmt.Println(string(r[0])) // Vai mostrar 'П'
Assim, o operador [] para strings retorna um byte por índice, e não um caractere Unicode.