Метод get_key_value
Метод get_key_value ищет в хеш-таблице
элемент с указанным ключом и возвращает ссылку
на ключ и ссылку на значение в виде кортежа
(&K, &V). Если элемент не найден,
возвращается None. Параметром метод
принимает ключ, который нужно найти.
В отличие от метода get, который возвращает
только значение, get_key_value возвращает
и ключ, и значение. Это полезно, когда ключом
является сложный тип, например String,
и нужно получить ссылку на него без клонирования.
Синтаксис
hashmap.get_key_value(key)
Пример
Давайте создадим хеш-таблицу и получим ключ
и значение по ключу "b":
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
let res = map.get_key_value("b");
println!("{:?}", res);
}
Результат выполнения кода:
Some(("b", 2))
Пример
Давайте попробуем получить ключ и значение
по ключу "x", которого нет в таблице:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
let res = map.get_key_value("x");
println!("{:?}", res);
}
Результат выполнения кода:
None
Пример
Давайте получим ссылку на ключ типа String
без его клонирования:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert(String::from("abcde"), 10);
map.insert(String::from("12345"), 20);
if let Some((key, value)) = map.get_key_value("abcde")
{
println!("key: {}, value: {}", key, value);
}
}
Результат выполнения кода:
key: abcde, value: 10
Смотрите также
-
метод
get,
который возвращает только значение по ключу -
метод
get_mut,
который возвращает изменяемую ссылку на значение -
метод
contains_key,
который проверяет наличие ключа в таблице -
метод
remove_entry,
который удаляет элемент и возвращает ключ со значением