Back to questions
Senior
5
Как организована строка под капотом в Go?
Companies where asked
I-teco
Answer from AI
sobes.tech AI
В Go строка (string) — это неизменяемый срез байт, который под капотом представлен структурой с двумя полями:
- указатель на массив байт,
- длина строки.
То есть строка — это просто указатель на последовательность байт и её длина. Память для байтов выделяется отдельно и не копируется при передаче строки, что делает операции с ними эффективными.
Пример внутреннего представления (упрощённо):
// Внутренне string похож на:
type stringHeader struct {
Data uintptr // указатель на байты
Len int // длина строки
}
Из-за неизменяемости строк любые операции, изменяющие содержимое, создают новый массив байт и новую строку.