🟡 Средний · 2 очк. Map
Скомпилируется ли: m := map[string]struct{X int}{"a": {1}}; m["a"].X = 2?
A Да, X станет 2
B Нет, значение map не адресуемо
C Да, но panic при выполнении
D Только если использовать указатель
Объяснение вопроса

Код не скомпилируется. Значения в map в Go не адресуемы. Нельзя взять адрес элемента map (например, для присваивания полю структуры), потому что при росте map внутреннее хранилище может перемещаться. Выражение m["a"].X = 2 пытается изменить поле у временного значения - это запрещено. Решение: извлечь значение в переменную, изменить и записать обратно, либо хранить в map указатели: map[string]*struct{X int}.

m := map[string]struct{ X int }{"a": {1}}
v := m["a"]
v.X = 2
m["a"] = v
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.