Itérer sur une chaîne par des runes dans Go
Dans Go, vous pouvez rencontrer une situation dans laquelle vous souhaitez parcourir une chaîne par son runes individuelles ou points de code Unicode. Vous pourriez être tenté d'utiliser une boucle for traditionnelle avec l'index i pour accéder à chaque caractère :
for i := 0; i < len(str); i++ { dosomethingwithrune(str[i]) // takes a rune }
Cependant, cette approche ne fonctionnera pas correctement car str[i] renvoie un octet (uint8) au lieu de une rune. Pour parcourir la chaîne par runes, vous devez utiliser la syntaxe de plage :
for pos, char := range "日本語" { fmt.Printf("character %c starts at byte position %d\n", char, pos) }
Ce code imprimera le résultat suivant :
character 日 starts at byte position 0 character 本 starts at byte position 3 character 語 starts at byte position 6
Comme l'explique la documentation d'Effective Go, la syntaxe range "fait plus de travail pour vous, en séparant les points de code Unicode individuels en analysant l'UTF-8". Cela vous permet de travailler directement avec les runes, ce qui facilite l'exécution d'opérations liées à Unicode sur vos chaînes.
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!