【发布时间】:2014-08-30 10:40:01
【问题描述】:
编者注:此代码示例来自 Rust 1.0 之前的版本,在语法上不是有效的 Rust 1.0 代码。此代码的更新版本会产生不同的错误,但答案仍然包含有价值的信息。
我已经实现了以下方法以从二维数据结构的文件中返回单词:
fn read_terms() -> Vec<Vec<String>> {
let path = Path::new("terms.txt");
let mut file = BufferedReader::new(File::open(&path));
return file.lines().map(|x| x.unwrap().as_slice().words().map(|x| x.to_string()).collect()).collect();
}
这是 Rust 中正确、惯用且有效的方式吗?我想知道是否需要经常调用collect(),以及是否有必要在这里调用to_string() 来分配内存。也许应该以不同的方式定义返回类型以更加惯用和高效?
【问题讨论】:
标签: rust