Очистка карты в Rust
Очистка убирает все пары и оставляет карту
пустой. Переменная по-прежнему указывает
на ту же карту: после очистки в нее снова
можно писать. Длина становится 0.
Заполним карту, очистим и проверим длину:
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("ann", 20);
ages.insert("bob", 30);
println!("{}", ages.len());
ages.clear();
println!("{}", ages.len());
ages.insert("cy", 25);
println!("{}", ages["cy"]);
}
Сначала длина 2, после очистки 0.
Новая запись по ключу "cy" работает:
карта только опустела, а не исчезла.
Очистку можно сравнить с удалением каждого ключа в цикле, но одной командой короче:
use std::collections::HashMap;
fn main() {
let mut room = HashMap::new();
room.insert("a", 1);
room.clear();
println!("{}", room.is_empty());
}
Дана следующая карта:
let mut desk = HashMap::new();
desk.insert("a", 1);
desk.insert("b", 2);
Очистите desk и выведите длину и
ответ проверки пустоты.
Дана следующая карта:
let mut box_map = HashMap::new();
box_map.insert("x", 10);
box_map.insert("y", 20);
Очистите box_map, добавьте одну пару
по новому ключу и выведите значение.
Чем очистка отличается от создания новой пустой карты в ту же переменную, если старое имя еще где-то используется?