Junior — Middle
De que forma as strings são implementadas e como estão relacionadas com as runas na linguagem Go?
sobes.tech IA
Resposta da IA
Na linguagem Go, as strings são representadas pelo tipo string, que é uma sequência imutável de bytes, geralmente codificada em UTF-8. Isso significa que uma string é um segmento de bytes, não de caracteres.
As runas (rune) são um tipo que representa um ponto de código Unicode (int32). Para trabalhar com caracteres Unicode em uma string, ela é convertida em um segmento de runas, o que permite manipular corretamente caracteres multibyte.
Exemplo:
s := "Привет"
for i, r := range s {
fmt.Printf("%d: %c\n", i, r) // i — índice do byte, r — a runa (caractere)
}
runes := []rune(s) // conversão da string para um segmento de runas
fmt.Println(runes[0]) // primeiro caractere como uma runa
Portanto, as strings em Go são sequências de bytes, e as runas são caracteres Unicode individuais, o que permite trabalhar corretamente com textos multilíngues.