Шаг 23.
Язык программирования Go.
Литералы, операторы и экранированные последовательности

    На этом шаге рассмотрим литералы, операторы и экранированные последовательности в языке Go.

    Строковые литералы определяются с помощью кавычек (") или обратных апострофов (`). Кавычки используются для определения интерпретируемых строковых литералов – такие строки поддерживают экранированные последовательности, перечисленные в табл. 1, но они не могут занимать несколько строк в программе.

Раскрыть/скрыть таблицу 1 Экранированные последовательности.

    Обратные апострофы используются для определения обычных строковых литералов, такие строки могут занимать несколько строк в программе, но они не поддерживают экранированных последовательностей и могут содержать любые символы, кроме обратных апострофов. Интерпретируемые строковые литералы используются чаще, но для записи многострочных сообщений, разметки HTML и регулярных выражений удобнее использовать строковые литералы в обратных апострофах. Ниже приводятся несколько примеров литералов.

text1 :=  "\"Что это?\", - спросила она."// Интерпретируемый строковый литерал
text2 := `"Что это?", - спросила она.` // Простой строковый литерал
radicals := " √ \u221A \U0000221a" // radicals == " √ √ √ "

    В этом примере были созданы три переменные типа string, при этом переменные text1 и text2 содержат один и тот же текст. Поскольку для файлов с расширением .go используется кодировка UTF-8, в них можно включать любые символы Юникода. Однако сохраняется возможность использовать экранированные последовательности Юникода, как это сделано для второго и третьего символов √. Здесь невозможно использовать 8-битное восьмеричное или шестнадцатеричное представление кодового пункта, так как они ограничены диапазоном от U+0000 до U+00FF, слишком узкого для представления кодового пункта U+221A, соответствующего символу √.

    Если потребуется определить длинный и интерпретируемый строковый литерал, разместив его на нескольких строках в тексте программы, можно разбить его на несколько литералов и объединить их оператором конкатенации (+). Кроме того, несмотря на то что строки в языке Go являются неизменяемыми, они поддерживают оператор добавления += . Он замещает имеющуюся строку результатом конкатенации двух строк, если емкости исходной строки недостаточно для размещения добавляемой строки. Например,

book := "The Spirit Level" + // Конкатенация строк
        " by Richard Wilkinson"
book += " and Kate Pickett" // Добавление в конец строки 

    На следующем шаге рассмотрим операции со строками в Go.


Предыдущий шаг Содержание Следующий шаг