РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
704 of 1245 menu

Метод 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,
    который удаляет элемент и возвращает ключ со значением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить