Conversion de runes en chaînes dans Go
Dans Go, il est possible de convertir une rune (un point de code Unicode) en chaîne. Cela peut être utile pour diverses opérations nécessitant une manipulation de chaîne.
Une façon de convertir une rune en chaîne consiste à utiliser la fonction strconv.QuoteRune(). Cependant, certains utilisateurs peuvent rencontrer des caractères non définis lors de l'utilisation de cette méthode.
Pour résoudre ce problème, il est important de comprendre comment fonctionne la fonction Scanner.Scan(). Scanner.Scan() est conçu pour tokeniser l'entrée, ce qui signifie qu'il reconnaît les symboles spéciaux et les jetons contrôlés par le masque de bits Scanner.Mode. Lorsque vous utilisez Scanner.Scan() sur une rune, il renvoie une constante spéciale du package texte/scanner, pas la rune elle-même.
Pour lire une seule rune, il est recommandé d'utiliser Scanner.Next() à la place :
c := b.Next()
Cela attribuera la rune 'a' à la variable c, et vous pourrez la convertir en chaîne en utilisant le casting de chaîne :
fmt.Println(c, string(c))
Si vous avez simplement besoin de convertir une seule rune en chaîne, vous pouvez utiliser une conversion de type de base. Puisque la rune est un alias pour int32, les conversions d'entiers peuvent être directement appliquées :
r := rune('a') fmt.Println(r, string(r))
Pour parcourir les runes d'une chaîne, vous pouvez utiliser la construction for ... range :
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) }
Vous pouvez également convertir une chaîne en tranche de runes en utilisant utf8.DecodeRuneInString() :
fmt.Println([]rune("abc"))
N'oubliez pas que lorsque vous utilisez la méthode Scanner.Scan() avec le mode Go Tokens, elle traite les runes comme Allez les identifiants, il est donc crucial d'utiliser Scanner.Next() pour une lecture précise des runes.
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!