Ответ
В Go string — это неизменяемая последовательность байт, представляющая текст в кодировке UTF-8.
Особенности:
- Неизменяемость: нельзя изменить символ в существующей строке.
- Поддержка Unicode: строки хранятся в UTF-8.
- Длина (
len()) возвращает количество байт, а не символов (для подсчета символов используйutf8.RuneCountInString).
Пример:
s := "Привет"
fmt.Println(len(s)) // 12 байт (так как кириллица занимает 2 байта на символ)
fmt.Println(utf8.RuneCountInString(s)) // 6 символов
Для работы с отдельными символами лучше конвертировать строку в []rune.