Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Строки
Для хранения строки предназначен тип данных string
. Строки являются упорядоченными последовательностями байтов (байтовым срезом). Длина строки ограничена лишь объемом оперативной памяти компьютера. Следует учитывать, что символы внутри строки изменить нельзя, поэтому все строковые функции в качестве значения возвращают новую строку.
Объявление строки
Объявление и инициализация строки осуществляется по следующей схеме:
var <Переменная> string[ = <Значение>]
Если значение не указано, то переменной будет присвоена пустая строка:
var s string
fmt.Printf("%q\n", s) // ""
fmt.Printf("%T\n", s) // string
После оператора =
можно указать строку внутри двойных кавычек:
var s string = "строка"
fmt.Println(s) // строка
Если задано значение, то тип данных можно опустить:
var s = "строка"
fmt.Println(s) // строка
fmt.Printf("%T\n", s) // string
Можно также использовать сокращенный формат объявления локальной переменной:
s := "строка"
fmt.Println(s) // строка
fmt.Printf("%T\n", s) // string
Внутри строкового литерала можно указать специальные символы (см. разд. 7.1.2):
s := "\n\r\f\t\v\b\\\167\x77\u005B"
fmt.Printf("%q\n", s) // "\n\r\f\t\v\b\\ww["
Если внутри строки встречается обратный слэш, то его необходимо экранировать. Это обязательно следует учитывать при указании пути к файлу:
s1 := "C:\\temp\\new\\file.txt" // Правильно
s2 := "C:\temp\new\file.txt" // Неправильно!!!
fmt.Println(s1) // C:\temp\new\file.txt
fmt.Println(s2) // Строка с ошибками!!!
Обратите внимание на вторую строку. В этом пути присутствуют сразу три специальных символа: \t
, \n
и \f
. После преобразования специальных символов путь будет выглядеть следующим образом:
C:<Табуляция>emp<Перевод строки>ew<Перевод формата>ile.txt
Внутри строки одинарная кавычка специальным символом не является. При этом двойные кавычки ограничивают строковый литерал, поэтому чтобы вставить двойную кавычку в строку ее нужно экранировать с помощью слеша, иначе кавычка станет концом строки:
s := "Группа \"Кино\""
fmt.Println(s) // Группа "Кино"
Следует заметить, что разместить строковый литерал внутри двойных кавычек на нескольких строках нельзя. Переход на новую строку вызовет синтаксическую ошибку:
s := "Строка1
Строка2" // Так нельзя!
В этом случае можно использовать операцию конкатенации строк:
s := "Строка1" +
"Строка2" +
"Строка3"
fmt.Println(s) // Строка1Строка2Строка3
Вместо двойных кавычек можно использовать обратные кавычки. В этом случае одинарные и двойные кавычки специальными символами не являются:
s := `строка"'`
fmt.Println(s) // строка"'
fmt.Printf("%T\n", s) // string
Обратите внимание: внутри строки в обратных кавычках вообще нельзя использовать специальные символы. Специальные последовательности трактуются как отдельные символы. Символ слеша также экранировать не нужно, что удобно при создании шаблона регулярного выражения. Пример:
s := `строка\n\t\`
fmt.Println(s) // строка\n\t\
При использовании обратных кавычек становится доступным многострочный режим с полным сохранением форматирования:
s := `Строка1
Строка2`
fmt.Printf("%q\n", s) // "Строка1\nСтрока2"
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов