在Rust中,函数可能需要Into<String>:
fn get_by_key<S: Into<String>>(&self, key: S) -> Option<&Value>;
Run Code Online (Sandbox Code Playgroud)
是否可以传入对字符串的引用,因此String在将函数传递给函数时不需要克隆(使用类似的东西Into<&String>>)?
您可以简单地使您的函数接受&str,然后通过&String隐式取消引用来传递一个将工作.
见deref强制.
fn main() {
fn get_by_key(_key: &str) {}
let s1: &str = "foo";
let s2: String = "foo".into();
get_by_key(s1);
get_by_key(&s2);
}
Run Code Online (Sandbox Code Playgroud)