В map остаётся одна запись a:3. Обычное чтение m["b"] даст 0, а форма value, ok := m["b"] дополнительно вернёт ok=false.
Какие значения останутся в map после изменений
В 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 не гарантирован; в этой задаче вывод одной записи не означает общей упорядоченности структуры.