Go · Intermediário · Inglês · Técnico
rune
Tipo que representa um ponto de código Unicode, alias de int32. É o que o range de uma string entrega e o que permite lidar com caracteres acentuados.
Onde usar
len("ação") dá 6 bytes, não 4: para contar caracteres converte-se para []rune. Aparece ao fazer substring, inverter texto ou validar entrada em português.
Em código
s := "ação"
fmt.Println(len(s))
fmt.Println(len([]rune(s)))
for _, r := range s {
fmt.Print(string(r), "|")
}Exemplos
Convert the string to a slice of runes before reversing it.
Converta a string para um slice de runes antes de invertê-la.
A rune can take up to four bytes in UTF-8.
Uma rune pode ocupar até quatro bytes em UTF-8.
Cuidado
Rune não é byte nem o char de C: um caractere ocupa de 1 a 4 bytes em UTF-8, e indexar a string devolve bytes.
Sinônimos
ponto de código, int32
Antônimos
byte
Origem
Do inglês rune, letra dos alfabetos germânicos antigos; Go usa o nome para um caractere Unicode.