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