Sobes.tech
Junior — Middle

Quelle information la fonction len renvoie-t-elle lors du traitement d'une chaîne?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, la fonction len appliquée à une chaîne retourne le nombre d'octets dans cette chaîne, et non le nombre de caractères (runes).

Cela est dû au fait que les chaînes en Go sont stockées au format UTF-8, où un caractère peut occuper de 1 à 4 octets. Par conséquent, len retourne la longueur en octets.

Exemple :

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // mot en russe
    fmt.Println(len(s)) // Affichera le nombre d'octets, par exemple 12
}

Si vous souhaitez obtenir le nombre de caractères (runes), il faut convertir la chaîne en un slice de runes :

runes := []rune(s)
fmt.Println(len(runes)) // Affichera le nombre de caractères, par exemple 6

Ainsi, len pour une chaîne est la longueur en octets, et non en caractères.