Какой результат появится в консоли в примере №70

Сначала возникает ошибка компиляции: строку "3" нельзя присвоить элементу []byte. После замены на '3' останется panic из-за индекса 3 при длине 2.

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

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

Сначала возникает ошибка компиляции: строку "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 перехватить не может.

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

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

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

Подробнее