可以使用'Into'传递'& str'或'& String'以在Rust中运行?

时间:2017-01-06 05:54:45

标签: rust

在Rust中,函数可能需要Into<String>

fn get_by_key<S: Into<String>>(&self, key: S) -> Option<&Value>;

是否可以传入对字符串的引用,因此在将String传递给函数时(使用Into<&String>>之类的东西)无需克隆linearDamping

1 个答案:

答案 0 :(得分:5)

您可以简单地让您的函数接受&str,然后通过隐式取消引用它来传递&String

请参阅deref coercion

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);
}