gpt4 book ai didi

rust - 如何从使用rust 的集合中返回 Vec

转载 作者:行者123 更新时间:2023-12-01 23:25:40 25 4
gpt4 key购买 nike

这里我将 vec 拆分为大小相等的子向量 4 然后返回一个集合,我希望从集合中返回的类型是 Vec<String> .我该怎么做?

let mut split_operations : Vec<String> = vec[2..].chunks(4).collect::<String>();

这会产生以下错误:

std::string::String 类型的值不能从 &[std::string::String] 类型元素的迭代器构建

类型的值std::string::String不能从 std::iter::Iterator<Item=&[std::string::String]> 构建

帮助:特质std::iter::FromIterator<&[std::string::String]>未针对 std::string::String 实现rustc(E0277)

最佳答案

collect()的类型参数是应该收集整个东西的地方。所以参数为collect并且实际类型是多余的,只需要一个。

但是 Rust 不想猜测 chunks 是如何发生的或发生了什么。应该改变:这里你有一个切片的迭代器(Iterator<Item=&[String])。您可以收集 Iterator<Item=String>Vec<String>或单个 String (它将连接所有项目),但中间切片意味着 Rust 不知道应该发生什么。

如果你想让每个 block 变成一个字符串,你需要在 map 中明确地做到这一点。例如

    let mut split_operations : Vec<String> = vec[2..].chunks(4)
.map(|c| c.concat())
.collect();

如果你想玩(和/或激怒你的同事),你也可以把 map 回调写成<[_]>::concat .

关于rust - 如何从使用rust 的集合中返回 Vec<String>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67283295/

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