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