Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmFnMp 270 of 373 menu
◀ ▶

Параметр-карта функции в Rust

Давайте теперь будем передавать карту в функцию по ссылке. Карту обычно передают так, чтобы не забирать владение и оставить ее снаружи. Для типа из стандартной библиотеки в начале файла подключают модуль.

Прочитаем значение по ключу через ссылку на карту:

use std::collections::HashMap; fn func(scores: &HashMap<String, i32>, key: &str) -> i32 { let mut out = 0; for (k, v) in scores.iter() { if k.as_str() == key { out = *v; } } out } fn main() { let mut map = HashMap::new(); map.insert("ann".to_string(), 20); let age = func(&map, "ann"); println!("{}", age); println!("{}", map.len()); }

На экране 20 и 1. Переменная map по-прежнему доступна в точке входа.

Проверим наличие ключа без изменения карты:

use std::collections::HashMap; fn func(data: &HashMap<String, i32>, key: &str) -> bool { data.contains_key(key) } fn main() { let mut map = HashMap::new(); map.insert("go".to_string(), 1); println!("{}", func(&map, "go")); println!("{}", func(&map, "sql")); }

Дана карта:

use std::collections::HashMap; let mut map = HashMap::new(); map.insert("a".to_string(), 3);

Напишите блок со ссылкой на карту, который отдает длину, и выведите результат.

Дан следующий код:

use std::collections::HashMap; fn main() { let mut m = HashMap::new(); m.insert("x".to_string(), 9); let ok = func(&m); println!("{}", ok); }

Допишите func с параметром-ссылкой и проверкой ключа "x".

Скажите, зачем в начале файла пишут use для карты.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить