我在想为什么这个能够运行
fn main() {
let v: Vec<&str> = Vec::new();
let s: &str = v.get(0).unwrap();
let new_string = String::from(s);
println!("{}", new_string);
}
但不包括这个:
fn main() {
let v: Vec<&str> = Vec::new();
let s = v.get(0).unwrap();
let new_string = String::from(s);
println!("{}", new_string);
}
我从第二段代码中得到以下错误信息:
let new_string = String::from(s);
^^^^^^^^^^^^ the trait `std::convert::From<&&str>` is not implemented for `std::string::String`
type()
函数或类似的东西,我会打印出上面两个片段中的s
并进行比较。我怀疑这与错误中显示的双重引用 (&&str
) 有关。 - PerplexabotT == &str
),get
返回一个可选的引用(Option<&T>
),这意味着你得到了两个引用(Option<&&str>
)。 - mcarton