首页 > 解决方案 > 函数是否有可能(或需要)返回一个 rust 的向量<&str>

问题描述

假设我有这个功能

fn f() -> std::io::Result<Vec<String>> {

据我了解,向量必须具有 type Vec<String>,而不是Vec<&str>,因为引用的东西会在函数末尾超出范围,除非我引用了函数之外的东西,或者借用并返回了那个东西。所以Vec<String>

但是假设我想collect在这个向量中做一些事情v

let v: Vec<&str> = contents.split(',').collect();

wheresplit将返回一个迭代器 over &str,我们将其收集到一个向量中collect(移动缓慢,我对这门语言有点陌生)。

但我很确定我不想要那个&str,我应该能够在和之间插入一个函数collectsplit将我&str的迭代器转换为String迭代器,然后收集,但我没有找到一种方法来做到这一点。

标签: stringvectorrustiterator

解决方案


推荐阅读