这段代码:
fn main() {
let s = "hello".to_string();
let keywords = vec!["hello", "bye"];
// if keywords.contains(&s.as_str())
if keywords.contains(&&s)
// ~> expected &&str, found &collections::string::String
{
println!("exists");
}
}
Run Code Online (Sandbox Code Playgroud)
通常,当函数期望&str类型时,你可以给一个String
let s = "abc".to_string();
foo(&s); // ok,
Run Code Online (Sandbox Code Playgroud)
但是&&s不DEREF来&&str,我认为这是不一致的.