Цикл и условие в Rust
Внутри цикла по карте можно выполнять команду
только для части пар. Тело for крутится
для каждой пары, а ветка if внутри
решает, печатать ли ключ или пропустить шаг.
Выведем только тех, у кого возраст не меньше
25:
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("ann", 20);
ages.insert("bob", 30);
ages.insert("cy", 25);
for (name, age) in &ages {
if age >= 25 {
println!("{} {}", name, age);
}
}
}
На экране строки для "bob" и "cy".
"ann" проверку не проходит и не печатается.
Условие может смотреть на ключ:
use std::collections::HashMap;
fn main() {
let mut labels = HashMap::new();
labels.insert("go", 1);
labels.insert("java", 2);
labels.insert("book", 3);
for (k, v) in &labels {
if k == "go" {
println!("{}", v);
}
}
}
Дана следующая карта:
let mut data = HashMap::new();
data.insert("a", 1);
data.insert("b", 4);
data.insert("c", 7);
Обойдите data и выведите ключи, где
значение больше 2.
Дана следующая карта:
let mut room = HashMap::new();
room.insert("a", 3);
room.insert("b", 4);
room.insert("c", 5);
Печатайте "hit" только для значений,
которые делятся на 2 без остатка.
Дана следующая карта:
let mut pack = HashMap::new();
pack.insert("a", 1);
pack.insert("ab", 2);
pack.insert("abc", 3);
Выведите только ключи, длина которых больше одного символа, через условие в цикле.