Что такое строка в Go? Что произойдёт если попытаться изменить первый символ строки через индекс?

В Go строки (string) являются неизменяемыми (immutable).

Короткий ответ

Что ответить на собеседовании

В Go строки (string) являются неизменяемыми (immutable). Это значит, что нельзя изменить отдельный символ строки напрямую, например, присвоить новое значение по индексу. Если нужно изменить символ, необходимо создать новую строку с нужными изменениями.

Подробный разбор

Ответ с пояснениями

В Go строки (string) являются неизменяемыми (immutable). Это значит, что нельзя изменить отдельный символ строки напрямую, например, присвоить новое значение по индексу. Если нужно изменить символ, необходимо создать новую строку с нужными изменениями.

Это связано с тем, что строки в Go реализованы как последовательность байтов, и для обеспечения безопасности и эффективности они не допускают мутаций. Например:

s := "hello"
// s[0] = 'H' // ошибка компиляции: нельзя присвоить значение элементу строки

// Правильный способ — создать новую строку:
s2 := "H" + s[1:]
fmt.Println(s2) // Hello

Таким образом, изменение одного символа в строке напрямую невозможно из-за неизменяемости строк в Go.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее