Rust:
Utilisation des tableaux associatifs
Comment faire :
En Rust, le type HashMap
du module std::collections
fournit la fonctionnalité des tableaux associatifs. Voici comment vous pouvez travailler avec eux :
use std::collections::HashMap;
fn main() {
// Création d'un nouveau HashMap
let mut scores = HashMap::new();
// Insertion de valeurs
scores.insert(String::from("Blue"), 10);
scores.insert(String::from("Yellow"), 50);
// Accès aux valeurs
let team_name = String::from("Blue");
if let Some(score) = scores.get(&team_name) {
println!("Score pour l'équipe Blue: {}", score); // Sortie: Score pour l'équipe Blue: 10
}
// Mise à jour d'une valeur
scores.entry(String::from("Blue")).and_modify(|e| *e += 5);
// Itération sur les paires clé-valeur
for (key, value) in &scores {
println!("{}: {}", key, value); // Sortie: Blue: 15, Yellow: 50
}
}
Approfondissement
Le HashMap
en Rust utilise une fonction de hachage pour mapper les clés aux valeurs, ce qui permet une récupération rapide des données. Cependant, cette efficacité a un coût : les hash maps ne maintiennent pas l’ordre de leurs éléments. Cela contraste avec d’autres implémentations de tableaux associatifs, comme ceux en Python (dict
) ou en Ruby, qui, dans les versions récentes, maintiennent l’ordre d’insertion comme une fonctionnalité. Pour les cas d’utilisation où l’ordre des paires clé-valeur est significatif, les développeurs Rust pourraient envisager d’utiliser le BTreeMap
du module std::collections
, qui maintient l’ordre mais peut offrir une insertion et une récupération plus lentes par rapport à HashMap
. En fin de compte, le choix entre HashMap
et BTreeMap
dépend des exigences spécifiques concernant l’ordre et la performance.