Сначала возникает ошибка компиляции: строку "3" нельзя присвоить элементу []byte. После замены на '3' останется panic из-за индекса 3 при длине 2.
Какой результат появится в консоли в примере №70
Сначала возникает ошибка компиляции: строку "3" нельзя присвоить элементу []byte. После замены на '3' останется panic из-за индекса 3 при длине 2.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт, если выполнить следующий фрагмент кода на Go:
var s = []byte("ab")
s[3] = "3"
Ответ
Сначала возникает ошибка компиляции: строку "3" нельзя присвоить элементу []byte. После замены на '3' останется panic из-за индекса 3 при длине 2.
Срез, созданный из "ab", имеет допустимые индексы 0 и 1. Литерал '3' можно присвоить byte, поскольку его числовое значение представимо; строковый литерал "3" — другой тип.
Если нужно заменить второй символ, используйте s[1] = '3'. Если добавить третий, используйте s = append(s, '3'). Само изменение элемента ничего не печатает; для видимого результата потребуется вывод string(s). Ошибку типов recover перехватить не может.