Maison >développement back-end >Golang >Pourquoi le déplacement sur une chaîne dans Go renvoie-t-il des runes, alors que l'indexation renvoie des octets ?
Pourquoi Range Over String renvoie des runes, octet par index
Selon la documentation Go et nos propres tests, lors d'une plage sur une chaîne, les éléments obtenus sont de type rune, alors que l'indexation dans la chaîne à l'aide de str[index] donne des octets.
Le La raison principale de cette distinction découle de la définition du type de chaîne. Une chaîne représente une séquence d'octets, et l'accès à des octets individuels est possible via l'indexation.
D'autre part, la clause range est utilisée dans le for. instruction, elle permet de parcourir les points de code Unicode dans une chaîne. À partir d’un index de 0 octet, l’itération renverra le premier octet d’index de chaque point de code codé UTF-8 et la valeur du point de code correspondante (type rune).
Si vous souhaitez parcourir les octets de la chaîne au lieu des points de code, il existe quelques options :
Ces alternatives offrent un accès direct aux octets sans sacrifier la lisibilité du code.
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!