Ответ
В Go строки неизменяемы (immutable), поэтому попытка изменить символ по индексу вызовет ошибку компиляции. Строки в Go — это read-only срезы байт.
Для изменения символов нужно преобразовать строку в срез рун ([]rune), изменить нужный элемент, затем преобразовать обратно в строку:
s := "hello"
runes := []rune(s)
runes[0] = 'H' // изменяем первый символ
s = string(runes) // "Hello"
Важно: прямое обращение по индексу к строке (s[0]) вернет байт, а не символ, что может быть проблемой для Unicode символов вне ASCII.