124 votes

Quelle est la différence entre les backticks (``) et les doubles quotes ("") dans golang ?

Quelle est la différence entre les backticks (``) et les doubles quotes ("") dans golang ?

114voto

gonutz Points 2070

Entre guillemets "" vous devez échapper aux nouvelles lignes, aux tabulations et aux autres caractères qui n'ont pas besoin d'être échappés par des backticks `` . Si vous placez un saut de ligne dans une chaîne de backtick, il est interprété comme un saut de ligne. '\n' caractère, voir https://golang.org/ref/spec#String_literals

Ainsi, si vous dites \n dans une chaîne de backstick, il sera interprété comme la barre oblique inverse littérale et le caractère n.

a := "\n" // This is one character, a line break.
b := `\n` // These are two characters, backslash followed by letter n.

1 votes

Ainsi, en termes de C#, le backtick `` est comme @"" tandis que le double guillemet "" est exactement comme les chaînes de caractères double guillemet du C#. C'est chouette. Dommage cependant que le monde JS ait utilisé les backticks `` quelques années plus tard pour l'interpolation de chaînes de caractères - quelque chose qui, à l'heure où j'écris ces lignes, n'est pas du tout supporté par GoLang. Je dis cela simplement parce que JS est dominant de nos jours et que cela fera se gratter la tête à beaucoup de développeurs lorsqu'ils se mettront à GoLang.

44voto

Eugene Lisitsky Points 1119

Les chaînes Backtick sont des analogues des chaînes brutes multilignes en Python ou Scala : r""" text """ ou en JavaScript :

String.raw`Hi\u000A!`

Ils le peuvent :

  1. S'étendre sur plusieurs lignes.

  2. Ignorer les caractères spéciaux.

Ils sont utiles :

  1. Pour mettre du gros texte à l'intérieur.

  2. Pour les expressions régulières lorsque vous avez beaucoup de backslashes.

  3. Pour les balises de structure à mettre entre guillemets.

11voto

samadadi Points 713

Brut Les littéraux de chaîne de caractères sont des séquences de caractères entre les guillemets. Backslashs ("\") n'ont pas de signification particulière et Retour chariot caractères (' \r ') à l'intérieur des littéraux de la chaîne brute sont éliminés de la valeur de la chaîne brute.

Interprété Les chaînes de caractères sont des séquences de caractères comprises entre des guillemets doubles ("). \r ", " \n ", ...)

source : http://ispycode.com/GO/Strings/Raw-string-literals

7voto

`` représente une chaîne de caractères non interprétée et "" est une chaîne interprétée.

La valeur d'une chaîne littérale brute (chaînes de caractères non interprétées) est la chaîne composée des caractères non interprétés (implicitement encodés en UTF-8) entre les guillemets.

Les littéraux de chaîne interprétés sont des séquences de caractères entre guillemets doubles, comme dans "bar". À l'intérieur des guillemets, n'importe quel caractère peut apparaître, à l'exception de la nouvelle ligne et du guillemet double non encodé.

PS : les mots en italique sont de moi

https://golang.org/ref/spec#String_literals

6voto

IndikaM Points 104

Golang dispose de trois types de citations. Le guillemet simple, le guillemet double ou le guillemet inversé (backticks).

  • Guillemet simple - indique un type d'octet ou un type de rune qui correspond à uint8 ou int32 ainsi qu'au type de rune par défaut. Généralement utilisé pour indiquer les types de runes et afficher l'Unicode.
  • Les guillemets doubles - indiquent les chaînes de caractères qui sont des tableaux de caractères. Vous pouvez donc utiliser l'index du tableau pour accéder aux octets ou utiliser des fonctions comme len().
  • Les guillemets arrière (backtick) - indiquent un littéral de chaîne, mais ne prennent pas en charge les séquences d'échappement. Ils sont généralement utilisés pour afficher des chaînes littérales comme des lignes multiples.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X