Какие значения останутся в map после изменений

В map остаётся одна запись a:3. Обычное чтение m["b"] даст 0, а форма value, ok := m["b"] дополнительно вернёт ok=false.

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

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

В map остаётся одна запись a:3. Обычное чтение m["b"] даст 0, а форма value, ok := m["b"] дополнительно вернёт ok=false.

Подробный разбор

Ответ с пояснениями

Условие

В Go выполняется m := map[string]int{"a":1}; m["b"] = 2; m["a"] = 3; delete(m, "b"). Что содержит map и что даст чтение отсутствующего b?

Ответ

В map остаётся одна запись a:3. Обычное чтение m["b"] даст 0, а форма value, ok := m["b"] дополнительно вернёт ok=false.

Повторное присваивание по a заменяет значение, а delete удаляет b. Нулевое значение типа не позволяет отличить отсутствие ключа от сохранённого нуля, поэтому для такой проверки нужен ok. Порядок обхода map не гарантирован; в этой задаче вывод одной записи не означает общей упорядоченности структуры.

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

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

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

Подробнее