Maison > Article > développement back-end > Comment accéder aux octets et aux runes dans les chaînes Go ?
Accès et conversion d'octets dans les chaînes Go
Dans Go, les chaînes stockent des octets codés en UTF-8, et non des caractères ou des runes. L'accès aux éléments d'une chaîne, noté str[i], renvoie un octet (byte ou uint8) plutôt que de le convertir en rune.
Lorsque vous parcourez une chaîne à l'aide de la construction for ... range, vous peut accéder aux octets ou aux runes. L'indexation d'une chaîne (par exemple, str[i]) accède directement aux octets, tandis que la boucle sans conversion (for i := range str) parcourt les runes.
Considérations sur les performances
La conversion d'une chaîne en tranche d'octets à l'aide de []byte(str) n'effectue pas de copie réelle ; il est optimisé. Ainsi, il n'y a aucune différence de performances entre les deux méthodes présentées :
str := "large text" for i := range str { // use str[i] }
str := "large text" str2 := []byte(str) for _, s := range str2 { // use s }
Cependant, pour des performances et une clarté de code maximales, il est recommandé d'utiliser la méthode qui correspond à l'intention du code :
Itération de caractères
Lors de l'itération sur des caractères runiques dans une chaîne, il est important de noter que les caractères multi-octets, tels que les caractères Unicode , peut être représenté à l'aide de plusieurs octets dans le codage UTF-8 sous-jacent. La syntaxe for ... range str gère cela automatiquement, renvoyant l'index d'octet et la valeur du caractère (rune) à chaque itération.
Ressources supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!