Загружаем изображение…
По-старому буду называть эту структуру словарём. Хотя есть ещё одно название "ассоциированный массив". Но вот в rust это называется хэшем.
А смысл в следующем. Это список пар (ключ, значение). В rust все ключи и все значения должны быть одного типа. Хотя как обычно это требование обходится с помощью enum - перечисления. Я об этом расскажу позднее. Ниже представлен пример программы формирования хэша, перебор всех пар и получения значения по ключу.
use std::collections::HashMap;
fn main() {
// задать
let mut sl = HashMap::new();
// добавить значения
sl.insert(String::from("Иванов И.И."), 120000);
sl.insert(String::from("Петров П.П."), 70000);
sl.insert(String::from("Пупкина З.В."), 80000);
sl.insert(String::from("Васильев-Задунайский Р.Р."), 90000);
// перебор
for (name, salary) in &sl {
println!("{} - {}", name, salary);
}
// доступ по ключу
let key = "Пупкина З.В.".to_string();
match sl.get(&key) {
Some(&sal) => println!("{} - {}", key, sal),
None => println!("{} Нет такого!", key),
}
}
Не забывайте указать библиотеку для импортирования: use std::collections::HashMap;.
Да, доступ к значению по ключу очень быстрый. Этим и ценна данная структура.
А смысл в следующем. Это список пар (ключ, значение). В rust все ключи и все значения должны быть одного типа. Хотя как обычно это требование обходится с помощью enum - перечисления. Я об этом расскажу позднее. Ниже представлен пример программы формирования хэша, перебор всех пар и получения значения по ключу.
use std::collections::HashMap;
fn main() {
// задать
let mut sl = HashMap::new();
// добавить значения
sl.insert(String::from("Иванов И.И."), 120000);
sl.insert(String::from("Петров П.П."), 70000);
sl.insert(String::from("Пупкина З.В."), 80000);
sl.insert(String::from("Васильев-Задунайский Р.Р."), 90000);
// перебор
for (name, salary) in &sl {
println!("{} - {}", name, salary);
}
// доступ по ключу
let key = "Пупкина З.В.".to_string();
match sl.get(&key) {
Some(&sal) => println!("{} - {}", key, sal),
None => println!("{} Нет такого!", key),
}
}
Не забывайте указать библиотеку для импортирования: use std::collections::HashMap;.
Да, доступ к значению по ключу очень быстрый. Этим и ценна данная структура.
Просмотры: 119