Junior — Middle
Que représente le résultat de l'exécution de l'opérateur [] pour le type de données chaîne ?
sobes.tech IA
Réponse de l'IA
En Go, l'opérateur [] pour le type de données chaîne est utilisé pour obtenir une tranche d'octets de la chaîne ou un octet individuel par index. La chaîne en Go est une séquence immuable d'octets (UTF-8). En accédant à str[i], un octet de type byte (alias de uint8) est renvoyé, et non un caractère au sens habituel, car les caractères Unicode peuvent occuper plusieurs octets.
Exemple:
s := "Привет"
fmt.Println(s[0]) // Affichera l'octet correspondant à la première partie du caractère 'П'
fmt.Println(string(s[0])) // Affichera un caractère incorrect, car ce n'est pas un caractère UTF-8 complet
// Pour obtenir des caractères (runes), il faut convertir la chaîne en un slice de runes:
r := []rune(s)
fmt.Println(string(r[0])) // Affichera 'П'
Ainsi, l'opérateur [] pour une chaîne retourne un octet par index, et non un caractère Unicode.