Maison >développement back-end >Golang >Comment parcourir les runes dans une chaîne Go ?

Comment parcourir les runes dans une chaîne Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-13 03:10:02880parcourir

How Do I Iterate Over Runes in a Go String?

Itération sur des chaînes par runes dans Go

Lors de l'itération sur des chaînes dans Go, les développeurs rencontrent souvent le besoin de travailler avec des runes (code Unicode points) plutôt que des octets. En effet, le type de chaîne de Go stocke des octets, pas des runes.

Considérez l'extrait de code suivant :

for i := 0; i < len(str); i++ {
    dosomethingwithrune(str[i]) // takes a rune
}

Cet extrait est destiné à parcourir les caractères de la chaîne str, en effectuant une action avec chaque rune. Cependant, accéder à str[i] renvoie un octet, pas une rune.

Pour parcourir les runes d'une chaîne, Go fournit une expression de plage spécifiquement à cet effet :

for pos, char := range "日本語" {
    fmt.Printf("character %c starts at byte position %d\n", char, pos)
}

Dans dans l'exemple ci-dessus, l'expression range parcourt les runes de la chaîne, attribuant la rune actuelle à la variable char et la position actuelle de l'octet à la variable pos.

L'avantage de l'expression range est qu'elle gère UTF -8 décodage automatiquement, décomposant les points de code Unicode individuels. Cela simplifie la tâche d'itération sur les runes dans une chaîne tout en évitant les pièges potentiels de l'itération manuelle.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn