В чем разница между backticks (``) и двойными кавычками ("") в golang?

В чем разница между backticks (``) и двойными кавычками ("") в golang?

Ответ 1

В кавычках "" вам нужно экранировать новые строки, табуляции и другие символы, которые не нужно экранировать в обратных галочках ''. Если вы поместите разрыв строки в строку с обратным тэгом, он будет интерпретирован как символ '\n', см. Https://golang.org/ref/spec#String_literals

Таким образом, если вы скажете \n в обратной строке, это будет интерпретировано как буквенный обратный слеш и символ n.

Ответ 2

Обратные строки являются аналогами многострочной необработанной строки в Python или Scala: r""" text """ или в JavaScript

String.raw'Hi\u000A!'

Они могут

  1. Разбить несколько строк

  2. Игнорировать специальные символы

Они полезны:

  1. Для размещения большого текста внутри

  2. Для регулярных выражений, когда у вас много обратной косой черты

  3. Для строгих тегов ставить двойные кавычки.

Ответ 3

Строковые литералы

Raw - это последовательности символов между обратными окнами. Обратные черточки ('\') не имеют особого значения, а символы Возврат каретки ('\ r') внутри необработанных строковых литералов отбрасываются из необработанного значения строки.

Строковые литералы

Интерпретированные - это последовательности символов между двойными кавычками ( "\ r", "\n",...)

источник: http://ispycode.com/GO/Strings/Raw-string-literals

Ответ 4

'' представляет неинтерпретированные строки, а "" - интерпретируемую строку.

Значение необработанного строкового литерала (строки без интерпретации) - это строка, состоящая из символов без интерпретации (неявно в кодировке UTF-8) между кавычками

Интерпретируемые строковые литералы являются символьными последовательностями между двойными кавычками, как в "баре". В кавычках может появляться любой символ, кроме новой строки и неэкранированной двойной кавычки.

PS: выделенные курсивом слова - мои

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