Назад к вопросам
Aston
Senior
5
Что такое строка в Go? Какая у нее структура и особенности?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go строка (string) — это неизменяемая последовательность байтов, обычно представляющая текст в кодировке UTF-8. Структурно строка реализована как структура с двумя полями: указатель на массив байтов и длина.
Особенности строк в Go:
- Неизменяемость: после создания строку нельзя изменить. Любые операции, изменяющие содержимое, создают новую строку.
- UTF-8: строки хранят байты в UTF-8, что позволяет работать с Unicode символами.
- Доступ по байтам: индексирование строки возвращает байт, а не символ (руну). Для работы с символами нужно использовать пакет
unicode/utf8или преобразовывать строку в срез рун.
Пример структуры строки (упрощённо):
// string в Go примерно так:
type stringStruct struct {
ptr *byte
len int
}
Пример работы со строкой:
s := "Привет"
fmt.Println(len(s)) // количество байт
runes := []rune(s)
fmt.Println(len(runes)) // количество символов (рун)