我无法弄清楚如何以~str
惯用的方式使用带有类型键的 HashMap。例如,
let mut map: hashmap::HashMap<~str, int> = hashmap::HashMap::new();
// Inserting is fine, I just have to copy the string.
map.insert("hello".to_str(), 1);
// If I look something up, do I really need to copy the string?
// This works:
map.contains_key(&"hello".to_str());
// This doesn't: as expected, I get
// error: mismatched types: expected `&~str` but found `&'static str` (expected &-ptr but found &'static str)
map.contains_key("hello");
基于此错误报告,我尝试了
map.contains_key_equiv("hello");
但得到了
error: mismatched types: expected `&<V367>` but found `&'static str` (expected &-ptr but found &'static str)
我真的不明白这最后一条信息;有人有建议吗?