Фрагмент не компилируется: строки неизменяемы, а "z" нельзя присвоить байтовому элементу. var s string создаёт пустую строку.
Какой вывод появится в консоли в примере №69
Фрагмент не компилируется: строки неизменяемы, а "z" нельзя присвоить байтовому элементу. var s string создаёт пустую строку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Каким будет результат выполнения следующего фрагмента кода
var s string
s[3] = "z"
Ответ
Фрагмент не компилируется: строки неизменяемы, а "z" нельзя присвоить байтовому элементу. var s string создаёт пустую строку.
Нельзя получить вывод или runtime panic от исходника, пока не исправлены ошибки компиляции. Даже у изменяемого пустого []byte обращение к индексу 3 вышло бы за границы.
Если требуется строка из четырёх байтов с z на четвёртом месте, нужно сначала задать остальные символы, например s = "abcz". Для замены в существующем тексте создают []byte или []rune и проверяют длину. Простая замена двойных кавычек на одинарные не делает string изменяемой.