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.