gpt4 book ai didi

string - 在 Rust 中加入一个字符串向量

转载 作者:行者123 更新时间:2023-11-29 08:25:54 25 4
gpt4 key购买 nike

我想将一个string 向量连接到一个String 中,但是我对&str 的向量的不同结果感到困惑 &String 字符串:

let v1: Vec<String> = vec!["foo".to_string(), "bar".to_string()];
println!("{:?}", v1.join(",")); // OK

let v2: Vec<&str> = vec!["foo", "bar"];
println!("{:?}", v2.join(",")); // OK

let foo = "foo".to_string();
let bar = "bar".to_string();
let v3: Vec<&String> = vec![&foo, &bar];
println!("{:?}", v3.join(",")); // error

这是错误:

error[E0599]: no method named `join` found for type `std::vec::Vec<&std::string::String>` in the current scope
--> src/main.rs:11:21
|
11 | println!("{:?}", v3.join(",")); // error
| ^^^^ method not found in `std::vec::Vec<&std::string::String>`

非常欢迎任何帮助和解释

最佳答案

一般来说,使用 &String不鼓励:如果您需要自有副本,请使用 String如果您需要引用,请使用 &str .自动取消引用允许这相当透明:

let foo: String = "foo".to_string();
let bar: String = "bar".to_string();
let v3: Vec<&str> = vec![&foo, &bar];

注意:在上面的代码中,你真的不需要明确地写出类型,但我把它们放进去是为了表明一个Vec<&str>。可以从对类型变量的引用透明地构建 String .

关于string - 在 Rust 中加入一个字符串向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58855349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com