ExpertiDict

Go · Intermediário · Inglês · Técnico

rune

/ɹuːn/substantivo

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.

Veja também

Todos os termos de Go