Sobes.tech
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.