employee[“A”].clone().pop() ではなく、要素を指定せずにvalueをpop()したい場合
use std::collections::HashMap; fn main() { let mut employee: HashMap<String, Vec<String>> = HashMap::new(); employee.insert("A".to_string(), vec!["X".to_string(), "Y".to_string(), "Z".to_string()]); employee.insert("B".to_string(), vec!["X".to_string(), "Y".to_string(), "Z".to_string()]); for (key, mut value) in employee { println!("{:?}", value.pop()); } }
for e in employee ってしてしまうと、eからvalueの取り出し方法がわからなくなる。
これに結構時間かかりました。
vectorの要素のindexを取得する方法
println!("{:?}", value.iter().position(|n| n == "Y"));