gpt4 book ai didi

rust - 收集到 rust 中拥有的字符串的拥有的 vec

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

我正在尝试使用以下方法将使用rust 的字符串收集到 vec 中:

let fields : ~[~str] = row.split_str(",").collect();

我收到以下错误:预期 std::iter::FromIterator<&str>,但找到 std::iter::FromIterator<~str>(str 存储不同:预期 & 但找到~)

我尝试过使用类型提示但没有成功

最佳答案

.split_str 返回 iterator over &str slices ,也就是说,它正在返回 row 的 subview 数据。借来的&str不是自有的~str : 要使这项工作有效,请收集到 ~[&str] ,或者,复制每个 &str进入~str收集前:

let first: ~[&str] = row.split_str(",").collect();
let second: ~[~str] = row.split_str(",").map(|s| s.to_owned()).collect();

FWIW,如果您要拆分单字符谓词,则 split 会更有效率,(例如 row.split(',') 在这种情况下)。

另外,我推荐你upgrade to a more recent version of Rust , 0.11 是最近发布的,但 nightlies 是推荐的安装目标(将上述文档链接中的 0.10 更改为 0.11master 以获得相应的文档)。

对于 nightly,上面的两个片段将被写成:

let first: Vec<&str> = row.split(',').collect();
let second: Vec<String> = row.split(',').map(|s| s.to_string()).collect();

(最后,如果您正在努力区分 &str~str 又名 StringI wrote up some details a while ago 。)

关于rust - 收集到 rust 中拥有的字符串的拥有的 vec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24689463/

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