Что произойдёт если присвоить какой-нибудь символ элементу строки

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

Ответ

В Go строки неизменяемы (immutable), поэтому попытка изменить символ по индексу вызовет ошибку компиляции. Строки в Go — это read-only срезы байт.

Для изменения символов нужно преобразовать строку в срез рун ([]rune), изменить нужный элемент, затем преобразовать обратно в строку:

s := "hello"
runes := []rune(s)
runes[0] = 'H' // изменяем первый символ
s = string(runes) // "Hello"

Важно: прямое обращение по индексу к строке (s[0]) вернет байт, а не символ, что может быть проблемой для Unicode символов вне ASCII.