Строки в Go являются неизменяемыми последовательностями байт. Они могут представлять как текст UTF-8, так и произвольные двоичные данные.
Основные способы работы:
Объявление и инициализация:
go
Длина строки:
go
Доступ к байтам:
go
Прямой доступ к байтам не гарантирует получение символа UTF-8.
Доступ к рунам (символам UTF-8): Строки можно итерировать по рунам:
go
Длина в рунах:
go
Конкатенация строк:
go
Для эффективной конкатенации большого числа строк используйте strings.Builder.
go
Преобразование между строками и срезами байт/рун:
go
Модуль strings: Предоставляет множество полезных функций:
Contains, HasPrefix, HasSuffixIndex, LastIndexReplace, ToUpper, ToLower, Trim, TrimSpaceSplit, JoinМодуль strconv: Для преобразования строк в другие типы данных (числа, булевы) и обратно.
go
Неизменяемость: Любые операции, кажущиеся изменением строки (например, конкатенация), на самом деле создают новую строку. Это важно учитывать для производительности при частых изменениях. В таких случаях лучше использовать []byte или strings.Builder.