ExpertiDict

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

string imutável

/ˈstɾĩŋ i.muˈta.vew/substantivo

Em Go, uma string é uma sequência imutável de bytes, normalmente em UTF-8. Não se altera um byte no lugar; qualquer modificação cria uma nova string.

Onde usar

len(s) conta bytes, não caracteres, e s[i] devolve um byte. Para texto com acentos, converta para []rune ou use range, que decodifica runes.

Em código

s := "olá"
fmt.Println(len(s))  // 4 bytes
fmt.Println(len([]rune(s))) // 3 runes
// s[0] = 'O' não compila

Exemplos

Não dá para alterar um caractere, a string é imutável em Go.

O len da string deu 4 para três letras porque o á ocupa dois bytes.

Cuidado

Não espere que s[0] = 'a' compile: strings não aceitam atribuição por índice; converta para []byte ou []rune.

Antônimos

slice de bytes

Veja também

Todos os termos de Go