Rust:
Usando arrays associativos

Como Fazer:

Em Rust, o tipo HashMap do módulo std::collections fornece a funcionalidade de arrays associativos. Aqui está como você pode trabalhar com eles:

use std::collections::HashMap;

fn main() {
    // Criando um novo HashMap
    let mut scores = HashMap::new();

    // Inserindo valores
    scores.insert(String::from("Blue"), 10);
    scores.insert(String::from("Yellow"), 50);

    // Acessando valores
    let team_name = String::from("Blue");
    if let Some(score) = scores.get(&team_name) {
        println!("Pontuação para o time Blue: {}", score); // Saída: Pontuação para o time Blue: 10
    }

    // Atualizando um valor
    scores.entry(String::from("Blue")).and_modify(|e| *e += 5);

    // Iterando sobre pares de chave-valor
    for (key, value) in &scores {
        println!("{}: {}", key, value); // Saída: Blue: 15, Yellow: 50
    }
}

Aprofundamento

O HashMap em Rust usa uma função de hashing para mapear chaves a valores, o que permite a recuperação rápida de dados. No entanto, essa eficiência tem um custo: hash maps não mantêm a ordem de seus elementos. Isso contrasta com outras implementações de arrays associativos, como aquelas em Python (dict) ou Ruby, que, nas versões mais recentes, mantêm a ordem de inserção como uma característica. Para casos de uso em que a ordem dos pares chave-valor é significativa, desenvolvedores Rust podem considerar o uso do BTreeMap do módulo std::collections, que mantém a ordem mas pode oferecer inserção e recuperação mais lentas em comparação ao HashMap. Em última análise, a escolha entre HashMap e BTreeMap depende de requisitos específicos em torno de ordenação e desempenho.