Что такое string в Go?

Intern
491 просмотров
AFK Offer AI

string в Go — неизменяемая последовательность байт. Внутри это заголовок из двух полей: указатель на данные + длина. Строки хранятся в UTF-8.

s := "Hello, мир"
fmt.Println(len(s))    // 14 (байт, не символов)
fmt.Println(s[0])      // 72 (байт 'H')

Нельзя изменить отдельный байт строки — s[0] = 'h' не скомпилируется. Для модификации нужно конвертировать в []byte или []rune, изменить и конвертировать обратно. Конкатенация создаёт новую строку каждый раз, поэтому для множественной склейки используй strings.Builder.

Следующий вопрос

Как мокировать time.Now?