当前位置: 首页 > 知识库问答 >
问题:

如何从rust中的集合返回Vec<String>?

史鸿运
2023-03-14

这里我将vec分割成大小相等的4个子向量,然后返回一个集合,我希望从集合中返回的类型是< code>Vec

让 mut split_operations : Vec

这会生成以下错误:

std::string::string类型的值不能通过迭代器在类型元素上生成

类型std::string::String的值不能从std::iter::迭代器构建

help: the trait std::iter::FromIterator


共有1个答案

翟卓君
2023-03-14

收集()的类型参数是整个东西应该收集到的。所以收集的参数和实际类型是多余的,只需要一个。

然而,Rust 不想猜测应该如何或改变什么:在这里你有一个切片迭代器(迭代器

如果您希望每个块都成为单个字符串,则需要在映射中显式执行此操作,例如:

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

如果你想玩(和/或激怒你的同事),你也可以把地图回调写成

 类似资料:
  • 我需要这样的东西: 当然,我认为只有内置数字类型的向量才能传递给函数。 编译器告诉我,我需要为Vec提供FromIterator的trait trait

  • 编者按:这个问题中的语法早于Rust 1.0,1.0更新的语法会产生不同的错误,但Rust 1.0中的总体概念仍然相同。 我有一个带有字段的结构T,我想从函数返回该字符串。我不想复制整个字符串,只是指针: 为什么这是错误的?返回

  • 本文向大家介绍Rust 以Vec读取文件,包括了Rust 以Vec读取文件的使用技巧和注意事项,需要的朋友参考一下 示例 std::io::Result<T>是的别名Result<T, std::io::Error>。 try!()发生错误时,宏将从函数返回。 read_to_end()是std::io::Read特质的一种方法,必须明确地used。 read_to_end()不返回读取的数据。相

  • 问题内容: 我有以下几种情况: 假设我无法更改的返回类型,是否有比此方法返回更好的或更正确的方法来返回集合中的唯一元素? 遍历集合并立即返回 从集合中创建列表并调用 问题答案: 您可以使用来获取唯一元素,也可以验证集合仅包含一个元素(从而避免调用和不必要的列表创建): 您通常将其包装在自己的方法中: 请注意,此实现已经是Google的Guava库的一部分(即使您不将其用于此特定代码,我也 强烈 建

  • 本文向大家介绍如何在MongoDB中返回文档相对于集合的位置?,包括了如何在MongoDB中返回文档相对于集合的位置?的使用技巧和注意事项,需要的朋友参考一下 要返回文档相对于集合的位置,请与一起使用。让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是查询以返回文档相对于MongoDB中的集合的位置- 这将产生以下输出-

  • 在第七章我们粗略介绍了一下Vec的用法。实际上,作为Rust中一个非常重要的数据类型,熟练掌握Vec的用法能大大提升我们在Rust世界中的编码能力。 特性及声明方式 和我们之前接触到的Array不同,Vec具有动态的添加和删除元素的能力,并且能够以O(1)的效率进行随机访问。同时,对其尾部进行push或者pop操作的效率也是平摊O(1)的。 同时,有一个非常重要的特性(虽然我们编程的时候大部分都不