Карта Rust: подробное руководство по инициализации новой карты

Метод 1: использование типа HashMap
Самый распространенный способ инициализации новой карты в Rust — использование типа HashMapиз стандартной библиотеки. Вот пример:

use std::collections::HashMap;
fn main() {
    let mut map = HashMap::new();
    map.insert("key1", "value1");
    map.insert("key2", "value2");
    // Add more key-value pairs as needed
    println!("{:?}", map);
}

В этом методе мы импортируем тип HashMapиз модуля std::collections, создаем новый экземпляр карты с помощью HashMap::new(), а затем используйте метод insert, чтобы добавить на карту пары «ключ-значение».

Метод 2: использование агрегатной инициализации
Rust позволяет инициализировать новую карту с помощью агрегатной инициализации. Вот пример:

fn main() {
    let map = [("key1", "value1"), ("key2", "value2")]
        .iter()
        .cloned()
        .collect::<HashMap<_, _>>();
    println!("{:?}", map);
}

В этом методе мы создаем массив кортежей, представляющих пары ключ-значение. Затем мы используем метод iter()для перебора массива, cloned()для клонирования каждого кортежа и, наконец, collect()для сбора кортежей в новый. HashMap.

Метод 3: использование vec!и into_iter()
Другой подход к инициализации новой карты — использование макроса vec!и into_iter()метод. Вот пример:

fn main() {
    let map: HashMap<_, _> = vec![("key1", "value1"), ("key2", "value2")]
        .into_iter()
        .collect();
    println!("{:?}", map);
}

Здесь мы используем макрос vec!для создания вектора кортежей. Затем мы вызываем into_iter(), чтобы преобразовать вектор в итератор, и, наконец, мы используем collect(), чтобы собрать итератор в новый HashMap.

Инициализация новой карты в Rust — фундаментальная операция при работе с парами ключ-значение. В этой статье мы рассмотрели три разных метода: использование типа HashMap, агрегатную инициализацию и vec!с into_iter(). Каждый метод имеет свои преимущества и может использоваться в зависимости от конкретного варианта использования.

Поняв эти методы, вы теперь имеете прочную основу для работы с картами в Rust. Поэкспериментируйте с разными подходами и выберите тот, который соответствует вашим потребностям. Приятного кодирования!