Maison >développement back-end >Golang >Pourquoi l'utilisation de guillemets simples pour les chaînes provoque-t-elle des erreurs dans Go ?
Citation de chaîne en Golang
En Golang, les chaînes utilisant des guillemets simples représentent un seul caractère ou une rune, pas une chaîne. Tenter d'attribuer une chaîne à une variable entre guillemets simples entraînera une erreur car elle viole les règles de type du langage.
Caractère unique contre chaîne
A Un guillemet simple entoure une rune, qui est un seul point de code Unicode. Par exemple :
a := 'a' // represents the rune 'a'
En revanche, les guillemets doubles entourent une chaîne, qui est une séquence de zéro ou plusieurs runes.
a := "hello" // represents the string "hello"
Messages d'erreur
Les messages d'erreur que vous recevez indiquent que vous essayez d'attribuer une chaîne (entre guillemets simples) à une variable de type chaîne. Golang interprète la valeur entre guillemets simples comme une rune et se plaint de l'incompatibilité des types.
Sur certains systèmes, vous pouvez voir l'erreur « littéral runique illégal », ce qui signifie que le guillemet simple n'est pas un littéral runique valide. . Sur le terrain de jeu Go, vous pouvez constater une série d'erreurs de syntaxe liées à l'utilisation de guillemets simples.
Comparaison avec d'autres langages
Contrairement à Python et Perl, Golang distingue entre les caractères et les chaînes. Cette distinction est nécessaire car Golang prend en charge Unicode, qui peut représenter un large éventail de caractères à l'aide de plusieurs points de code.
Points de code et runes
Dans Golang, une rune est un entier représentant un point de code Unicode. Les chaînes sont composées de runes. Par exemple, la chaîne « bonjour » est représentée par la séquence de runes suivante :
[]rune{0x68, 0x65, 0x6c, 0x6c, 0x6f}
Chaque rune correspond à un caractère Unicode spécifique. La section « Points de code, caractères et runes » du blog Go sur les chaînes fournit plus de détails sur ce sujet.
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!