我有个问题要问.让我们看一下以下代码:
use std::collection::BTreeMap;
fn main() {
let mut hm: BTreeMap<String, String> = BTreeMap::new();
hm.insert("asdf".to_owned(), "zxcv".to_owned());
println!("{:?}", hm.get("asdf"));
}
因此,尽管BTreeMap
保持String
s,但它接受其他类型,可以与键类型进行比较.
但这不仅仅是Vec<T>
人的情况.因此,以下代码将是一个错误:
fn main() {
let v: Vec<String> = vec!["hello".to_owned()];
println!("{:?}", v.binary_search("hello"));
}
这段代码将无法编译,因为binary_search
次调用都是对所提供值的完全相同类型的引用.我有点搞不懂为什么.