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