Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmMpOK 183 of 350 menu
◀ ▶

Проверка наличия ключа в Go

Нулевое значение не доказывает, что ключа нет: нуль могли записать нарочно. Чтобы различить случаи, обращение к карте записывают в две переменные: значение и логический признак. Вторую часто называют ok: true, если ключ найден, false, если нет.

Проверим существующий и отсутствующий ключи:

ages := map[string]int{"ann": 20, "bob": 30} v, ok := ages["ann"] fmt.Println(v, ok) v, ok = ages["zoe"] fmt.Println(v, ok)

Для "ann" будет 20 и true. Для "zoe" будет 0 и false. Число совпало с нулем, но ok показывает отсутствие ключа.

Ключ с нулевым значением намеренно:

scores := map[string]int{"guest": 0} v, ok := scores["guest"] fmt.Println(v, ok)

Значение 0, но ok равен true: ключ есть. Без второй переменной это не отличить от пропущенного ключа.

Дана следующая карта:

data := map[string]int{"k": 5}

Получите v и ok для "k" и для "m". Выведите обе пары.

Даны переменные:

scores := make(map[string]int) scores["zero"] = 0

Проверьте ok для ключа "zero" и для "none". Выведите оба признака.

Создайте карту с любой одной парой. Выведите только ok для существующего и для отсутствующего ключа, игнорируя значение пустым идентификатором.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить