我正在尝试解析文件并Vec<Vec<&str>>从函数返回。但在推送到向量时,我在文件读取循环内遇到借用值错误。
use std::io::{self, BufReader, prelude::*};
use std::fs::File;
fn read() -> Vec<Vec<&'static str>> {
let file = File::open("~/test").expect("failed to read file");
let reader = BufReader::new(file);
let mut main_vector: Vec<Vec<&str>> = Vec::new();
for line in reader.lines() {
match line {
Ok(v) => {
let mut sub_vector: Vec<&str> = Vec::new();
for element in v.split_whitespace().collect::<Vec<&str>>() {
sub_vector.push(element);
}
main_vector.push(sub_vector);
},
Err(e) => panic!("failed to parse: {:?}", e),
}
}
//return main_vector;
}
Run Code Online (Sandbox Code Playgroud)
这是编译器错误:
error[E0597]: `v` does not live long enough
--> src/main.rs:67:32 …Run Code Online (Sandbox Code Playgroud)