借用した関数がHashMap
あり、キーで値にアクセスする必要があります。キーと値が値ではなく参照によって取得されるのはなぜですか?
私の簡略化されたコード:
fn print_found_so(ids: &Vec<i32>, file_ids: &HashMap<u16, String>) {
for pos in ids {
let whatever: u16 = *pos as u16;
let last_string: &String = file_ids.get(&whatever).unwrap();
println!("found: {:?}", last_string);
}
}
file_ids.get(&whatever).unwrap()
の代わりに、参照としてキーを指定する必要があるのはなぜfile_ids.get(whatever).unwrap()
ですか?私が理解しているように、所有しているコレクションが借用されているため、 は借用された stringを意味する
last_string
type でなければなりません。そうですか?&String
上記の点と同様に、から借用した値を取得するため、 が
pos
型であると仮定するのは正しいですか?&u16
ids