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

标签 rust

在 Rust 中,一个函数可以接受 Into<String>。 :

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

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

最佳答案

您可以简单地让您的函数接受 &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);
}

关于rust - 可以使用 '&str' 传递 '&String' 或 'Into' 以在 Rust 中运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41499789/

相关文章:

concurrency - Rust缓存异步特征

rust - 当我使用来自另一个模块的结构时导入了什么?

rust - 有没有办法强制从特定堆栈帧返回后不使用 Rust 原始指针?

rust - 如何防止值被 move ?

rust - 整个Box都可以 move 时,Box可以 move 其内容吗?

rust - 本地拥有的引用资料被认为是借来的

error-handling - 如何将 std::io::Error 与 Windows 错误代码进行匹配?

rust - 为什么无法编译?

terminal - 如何使用 ANSI 转义码计算 CLI 提示符的显示宽度?

rust - 从没有 Self 类型的序数中获取通用特征?