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

Отсутствующий ключ в Go

Если ключа нет, чтение возвращает нулевое значение этого типа. Для целых это 0, для строк пустая строка, для логического false. Ошибки при чтении нет: программа просто получает нуль нужного типа.

В карте с двумя людьми запросим ключ, который не записывали:

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

На экране 0, хотя "zoe" в карте нет. То же сработает для объявленной без создания карты: любое чтение дает нуль значения.

Для строк нулевое значение пустое:

labels := map[int]string{1: "one"} fmt.Println(labels[2])

Ключ 2 не добавляли, вывод пустой строки. Отличить «ключа нет» от «ключ есть, но значение нулевое» одним чтением нельзя: в следующем уроке разберем второй результат с именем ok.

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

room := map[string]int{"a": 1}

Выведите значение по "b" и скажите, что появится на экране.

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

tag := map[string]string{"go": "lang"}

Прочитайте ключ "book" и выведите длину полученной строки.

Почему нельзя по одному числу на экране понять, отсутствует ключ или записан ноль?

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