Что такое String в Go

«Что такое String в Go» — вопрос из категории Golang, который задают на 29% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go string — это неизменяемая последовательность байт, представляющая текст в кодировке UTF-8.

Особенности:

  • Неизменяемость: нельзя изменить символ в существующей строке.
  • Поддержка Unicode: строки хранятся в UTF-8.
  • Длина (len()) возвращает количество байт, а не символов (для подсчета символов используй utf8.RuneCountInString).

Пример:

s := "Привет"
fmt.Println(len(s))         // 12 байт (так как кириллица занимает 2 байта на символ)
fmt.Println(utf8.RuneCountInString(s)) // 6 символов

Для работы с отдельными символами лучше конвертировать строку в []rune.