Maison > Article > développement back-end > Existe-t-il un type de caractère dans le langage Go ?
Il existe deux types de caractères dans le langage go : 1. le type octet, également appelé type uint8, qui représente un caractère de code ASCII ; 2. le type rune, qui représente un caractère UTF-8 lorsque vous en avez besoin. pour traiter le chinois, pour le japonais ou d'autres caractères composés, vous devez utiliser le type rune. Le type rune est équivalent au type int32.
L'environnement d'exploitation de ce tutoriel : système Windows 10, GO 1.11.2, ordinateur Dell G3.
Chaque élément de la chaîne est appelé un « caractère » et les caractères peuvent être obtenus lors du parcours ou de l'obtention d'éléments de chaîne individuels.
Il existe deux types de caractères dans le langage Go :
L'un est le type uint8, ou type octet, qui représente le code ASCII d'un caractère .
L'autre est le type rune, qui représente un caractère UTF-8. Lorsque vous devez traiter des caractères chinois, japonais ou autres caractères composés, vous devez utiliser le type rune. Le type rune est équivalent au type int32.
Le type d'octet est un alias de uint8. Il n'y a aucun problème pour les caractères codés ASCII traditionnels qui n'occupent qu'un octet. Par exemple, var ch byte = 'A', le. le caractère utilise des guillemets simples.
Dans la table de codes ASCII, la valeur de A est 65, et en notation hexadécimale elle est 41, donc l'écriture suivante est équivalente :
var ch byte = 65 或 var ch byte = '\x41' //(\x 总是紧跟着长度为 2 的 16 进制数)
Une autre écriture possible est Elle est suivie d'un nombre octal de longueur 3, tel que 377
.
Le langage Go prend également en charge Unicode (UTF-8), donc les caractères sont également appelés points de code Unicode ou runes, et sont représentés par int en mémoire. Dans les documents, le format U+hhhh est généralement utilisé, où h représente un nombre hexadécimal.
Lors de l'écriture de caractères Unicode, vous devez ajouter le préfixe u ou U avant le nombre hexadécimal. Étant donné qu'Unicode occupe au moins 2 octets, nous utilisons le type int16 ou int pour le représenter. Si vous devez utiliser 4 octets, utilisez le préfixe u. Si vous devez utiliser 8 octets, utilisez le préfixe U.
var ch int = '\u0041' var ch2 int = '\u03B2' var ch3 int = '\U00101234' fmt.Printf("%d - %d - %d\n", ch, ch2, ch3) // integer fmt.Printf("%c - %c - %c\n", ch, ch2, ch3) // character fmt.Printf("%X - %X - %X\n", ch, ch2, ch3) // UTF-8 bytes fmt.Printf("%U - %U - %U", ch, ch2, ch3) // UTF-8 code point
Sortie :
65 - 946 - 1053236 A - β - r 41 - 3B2 - 101234 U+0041 - U+03B2 - U+101234
Le spécificateur de format %c est utilisé pour représenter les caractères. Lorsqu'il est utilisé avec des caractères, %v ou %d affichera l'entier utilisé pour représenter le caractère, % U sort. une chaîne au format U+hhhh.
Le package Unicode possède des fonctions intégrées pour tester les caractères. La valeur de retour de ces fonctions est une valeur booléenne, comme indiqué ci-dessous (où ch représente le caractère) :
Jugez si c'est une lettre : unicode.IsLetter(ch)
Jugez si c'est un nombre : unicode.IsDigit(ch)
Jugez s'il s'agit d'un nombre Pour les symboles d'espaces blancs : unicode.IsSpace(ch)
Apprentissage recommandé : Tutoriel Golang
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!