Удаление пары по ключу в Go
Пару убирают по ключу, и остальные пары не сдвигаются.
Для этого есть отдельная встроенная команда: первым
идет имя карты, вторым ключ. Это не метод значения,
а команда языка, как len или make.
Создадим три пары, удалим одну и проверим длину и оставшиеся ключи:
ages := map[string]int{"ann": 20, "bob": 30, "cy": 25}
delete(ages, "bob")
fmt.Println(len(ages))
fmt.Println(ages["bob"])
Длина 2. Чтение "bob" после удаления
дает 0, как для отсутствующего ключа.
Пары "ann" и "cy" остаются на месте
по смыслу, без «сдвига номеров».
Если ключа уже нет, команда ничего не ломает:
ages := map[string]int{"ann": 20}
delete(ages, "ghost")
fmt.Println(len(ages))
Дана следующая карта:
pair := map[string]int{"a": 1, "b": 2}
Удалите один ключ и выведите длину и значение удаленного ключа.
Дана следующая карта:
room := map[string]int{"a": 1}
Удалите ключ, которого нет, и выведите длину до и после.
Дана следующая карта:
trio := map[string]int{"a": 1, "b": 2, "c": 3}
Удалите две пары разными командами и выведите оставшееся значение по ключу.