Junior — Middle
Comment les chaînes sont-elles implémentées et comment sont-elles liées aux runes dans le langage Go ?
sobes.tech IA
Réponse de l'IA
Dans le langage Go, les chaînes sont représentées par le type string, qui est une séquence immuable d'octets, généralement encodée en UTF-8. Cela signifie qu'une chaîne est une tranche d'octets, pas de caractères.
Les runes (rune) sont un type représentant un point de code Unicode (int32). Pour travailler avec des caractères Unicode dans une chaîne, on convertit la chaîne en une tranche de runes, ce qui permet de gérer correctement les caractères multibytes.
Exemple :
s := "Привет"
for i, r := range s {
fmt.Printf("%d: %c\n", i, r) // i — index de l'octet, r — la rune (caractère)
}
runes := []rune(s) // conversion de la chaîne en une tranche de runes
fmt.Println(runes[0]) // premier caractère en tant que rune
Ainsi, les chaînes en Go sont des séquences d'octets, et les runes sont des caractères Unicode individuels, ce qui permet de travailler correctement avec des textes multilingues.