Проверка ключа в Rust
Перед чтением можно спросить, есть ли ключ. У карты для этого есть отдельная команда, она возвращает логический ответ да или нет. Если ответ да, квадратные скобки безопасны для этого ключа.
Проверим существующий и отсутствующий ключи:
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("ann", 20);
ages.insert("bob", 30);
println!("{}", ages.contains_key("ann"));
println!("{}", ages.contains_key("zoe"));
}
Для "ann" будет true, для
"zoe" будет false. После
проверки читают только те ключи, где ответ
да.
Свяжем проверку с чтением в одном файле:
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("guest", 0);
if scores.contains_key("guest") {
println!("{}", scores["guest"]);
}
}
Дана следующая карта:
let mut data = HashMap::new();
data.insert("k", 5);
Узнайте, есть ли ключи "k" и "m",
и выведите оба ответа.
Дана следующая карта:
let mut scores = HashMap::new();
scores.insert("zero", 0);
Сравните ответ для "zero" и для
"none". Выведите оба результата.
Создайте карту с одной парой. Выведите значение по ключу только если проверка дает да.