Тип данных string в Go представляет собой неизменяемую последовательность байт. В Go строки обрабатываются как слайсы байт, но с дополнительной гарантией неизменяемости.
Ключевые особенности:
- Неизменяемость: После создания строка не может быть изменена. Любая операция, которая выглядит как модификация строки, на самом деле создает новую строку.
- UTF-8 кодировка: Go по умолчанию использует UTF-8 для строк, что позволяет удобно работать с текстом на разных языках. Отдельные символы в строке (руны) могут занимать разное количество байт.
- Последовательность байт: Строка — это последовательность байт. Доступ по индексу
s[i] возвращает байт, а не руну. Для работы с рунами необходимо использовать []rune(s) или цикл for range s.
- Длина: Встроенная функция
len(s) возвращает количество байт в строке, а не количество символов (рун).
- Синтаксис литералов: Строковые литералы заключаются в двойные кавычки
"..." или обратные кавычки для "сырых" строк \...``.
Использование:
go