Junior — Middle
Qual valor é retornado pelo método length ao chamar uma string?
sobes.tech IA
Resposta da IA
Em Go, o método len ao ser chamado numa string devolve o número de bytes na string, não o número de caracteres. Isto deve-se ao facto de as strings em Go serem sequências de bytes codificadas em UTF-8. Se a string contiver apenas caracteres ASCII, o número de bytes corresponde ao número de caracteres. Mas se houver caracteres multilíngues, cada um pode ocupar vários bytes.
Exemplo:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Vai mostrar o número de bytes, por exemplo 12
}
Para contar o número de caracteres (runes), deve usar a função utf8.RuneCountInString do pacote unicode/utf8.