Maison > développement back-end > Golang > Comment fonctionnent les runes dans Go : une plongée approfondie dans les points de code Unicode et la conversion de casse ?

Comment fonctionnent les runes dans Go : une plongée approfondie dans les points de code Unicode et la conversion de casse ?

Patricia Arquette
Libérer: 2024-12-22 07:58:13
original
659 Les gens l'ont consulté

How Do Runes Work in Go: A Deep Dive into Unicode Code Points and Case Conversion?

Démystifier les runes dans Go

Une compréhension plus approfondie

Les runes sont des alias pour le type de données int32 dans Go, représentant les points de code Unicode . Cela signifie que chaque caractère d'une chaîne est représenté en interne par un entier de 32 bits. Bien que cela puisse sembler inhabituel au début, cela offre plusieurs avantages pour la programmation Go.

Rune Swapping

La fonction SwapRune fournie convertit les runes entre majuscules et minuscules. Il utilise une série de cas de commutation pour comparer la rune à des valeurs entières spécifiques, qui correspondent aux points de code Unicode pour « a », « z », « A » et « Z ». Sur la base de la comparaison, il applique une opération mathématique pour modifier la rune, en ajoutant ou en soustrayant 32 pour changer sa casse.

Fonctions internes de SwapRune

  • r <= 'z' : Vérifie si la rune est entre 'a' et 'z' dans Unicode plage de points de code.
  • && : L'opérateur logique AND garantit que les deux conditions dans le cas sont remplies.
  • r - 'a' : Si les deux les conditions sont remplies, soustrait 32 à la rune pour la convertir en minuscules.
  • 'A' 'a' : ajoute 32 pour convertir la rune en majuscules.

Runes dans les opérations de chaîne

La fonction SwapCase utilise la fonction strconv.Map pour appliquer la transformation SwapRune à chaque caractère d'une chaîne. Cela permet une modification efficace de la casse de la chaîne tout en conservant l'encodage UTF-8.

Explication simplifiée

Considérez le code suivant utilisant des entiers explicites :

func SwapRune(r rune) rune {
    switch {
    case 97 <= r && r <= 122:
        return r - 32
    case 65 <= r && r <= 90:
        return r + 32
    default:
        return r
    }
}
Copier après la connexion

Ici, le code compare la rune directement aux valeurs entières représentant les points de code Unicode, indiquant clairement comment le la conversion des majuscules et des minuscules est obtenue par manipulation mathématique.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal