Sobes.tech
Junior — Middle

Que informação a função len devolve ao processar uma string?

sobes.tech IA

Resposta da IA

Na linguagem Go, a função len aplicada a uma string devolve o número de bytes nessa string, não o número de caracteres (runes).

Isto deve-se ao fato de que as strings em Go são armazenadas no formato UTF-8, onde um caractere pode ocupar de 1 a 4 bytes. Portanto, len retorna o comprimento em bytes.

Exemplo:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // palavra em russo
    fmt.Println(len(s)) // Vai mostrar o número de bytes, por exemplo 12
}

Se precisar obter o número de caracteres (runes), deve converter a string para um slice de runes:

runes := []rune(s)
fmt.Println(len(runes)) // Vai mostrar o número de caracteres, por exemplo 6

Assim, len para uma string é o comprimento em bytes, não em caracteres.