Ответ
Для проверки наличия ключа в map используется комбинация из двух значений, возвращаемых при доступе к элементу: самого значения и флага существования.
m := map[string]int{"foo": 42}
value, exists := m["foo"]
// exists == true, value == 42
value, exists = m["bar"]
// exists == false, value == 0 (zero-value для int)
Если нужно только проверить наличие ключа без получения значения, можно использовать пустой идентификатор _:
if _, exists := m["foo"]; exists {
// ключ существует
}
Важно: при обращении к несуществующему ключу возвращается zero-value для типа значения, поэтому проверка только значения (val := m["foo"]) ненадежна.