这是从文件中读取行并将其拆分为 Rust 中的单词的正确方法吗?

2023-11-22

编者注:此代码示例来自 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()这里分配内存。也许应该以不同的方式定义返回类型以更加惯用和高效?


有一种更短、更易读的方法可以从文本文件中获取单词。

use std::io::{BufRead, BufReader};
use std::fs::File;

let reader = BufReader::new(File::open("file.txt").expect("Cannot open file.txt"));

for line in reader.lines() {
    for word in line.unwrap().split_whitespace() {
        println!("word '{}'", word);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这是从文件中读取行并将其拆分为 Rust 中的单词的正确方法吗? 的相关文章

随机推荐

  • 处理urllib2的超时? - Python

    我在 urllib2 的 urlopen 中使用超时参数 urllib2 urlopen http www example org timeout 1 我如何告诉Python 如果超时到期 应该引发自定义错误 有任何想法吗 您想要使用的情况
  • 为什么我的区域特定 Web API 可以从所有其他区域访问?

    我目前正在开发一个 ASP NET MVC 4 Web 应用程序项目 该项目必须遵守以下设计决策 主 MVC 应用程序位于解决方案的根目录中 所有管理员功能都位于单独的区域中 每个外部方 例如供应商 都有自己的区域 每个区域 包括根部 都构
  • 什么是 ruby​​ on Rails?

    我是一名前端开发人员 HTML CSS JS 和 jQuery 我了解一点 PHP 我正在尝试了解 Ruby Ruby on Rails 是什么 On http rubyonrails org 它说 Ruby on Rails 是一个开源
  • C++11 字符串开头的大小写不敏感比较(unicode)

    我必须检查特定字符串是否以另一个字符串开头 字符串使用 utf8 编码 比较应不区分大小写 我知道这与那个主题非常相似C 中不区分大小写的字符串比较但我不想使用 boost 库 我更喜欢便携式解决方案 如果 几乎 不可能 我更喜欢面向 Li
  • Angularjs 获取巨大 json 文件的请求

    我需要向用户显示数据库中的一些数据 数据位于 json 文件中 并且大小相当大 json 文件的大小大约在 15MB 左右 我创建了一个服务并使用 Promise api 发出成功的请求并加载数据并通过在 div 上执行 ng repeat
  • SFINAE 与以下 has_member 函数一起无法正常工作是什么?

    我正在尝试以下示例沃尔特 布朗 Walter Brown 的 TMP 演讲我正在努力得到他的has member实施工作 然而 实现似乎错误地返回 true 这让我相信 SFINAE 有一些我不理解的细节 include
  • 在 MATLAB 中使用 imshow 方法显示图像标题

    如何在 MATLAB 图形中显示图像标题 我有以下代码 I imread images pap png subplot 1 2 1 imshow I here I want to show labels Use the title命令 它的
  • 用于开发新的Windows Azure管理门户的框架?

    有谁知道微软使用什么框架在Windows Azure上开发类似Metro的Web管理门户 如果是这样 开发者可以使用吗 I 提出了同样的问题并因此受到很多仇恨 获胜的答案是地铁用户界面包 它完成了 Azure 中的许多工作 但您必须自己实现
  • 如何在 java 中使 JTable 可编辑

    我在 java 中使用 JTable 但它不允许我编辑单元格 private final TableModel dataModel new AbstractTableModel public int getColumnCount retur
  • proxyMode ScopedProxyMode.TARGET_CLASS 与 ScopedProxyMode.INTERFACE

    正如其他 SO 答案所建议的 根据您的需要使用代理模式类型 我仍然很困惑 Configuration ComponentScan public class Application public static void main String
  • Python:更新线程中的参数

    我想知道当该参数在程序主体中获得新值时是否可以启动一个新线程并更新其参数 所以像这样 i 0 def foo i print i time sleep 5 thread start new thread foo i while True i
  • SQL 选择 MAX(COUNT)

    我正在尝试选择具有 MAX 微帖子数的用户 SELECT name count FROM users INNER JOIN microposts ON microposts user id users id GROUP BY users i
  • IntegrityError:错误:列“user_id”中的空值违反了非空约束

    使用 postgres PostgreSQL 9 4 5 我刚刚迁移了一个sqlite3数据库到一个postgresqlD b 由于某种原因 自从这次迁移以来 当我尝试创建用户时 出现了有关user id 这是主键 正在被提升 以前这不是问
  • 当泛型类型设置为 never 时,泛型条件类型解析为 never

    我需要一个泛型类型 当 该属性的 泛型参数为时 该类型可以从指定类型中排除泛型属性never 为了实现这一点 我使用了Omit和条件类型 例如 当通用参数设置为number它的行为符合预期 但是当泛型类型设置为never 类型解析为neve
  • 更改 eclipse 创建 .eclipse、.p2 和其他文件夹的位置

    我看到 eclipse 在我的用户主文件夹中创建了一些文件夹 例如 eclipse p2 等 我想更改此默认文件夹 我想将所有内容保存在 D 位置 我读了这个在 Linux 中更改 eclipse 文件夹但我不明白我必须更改哪个文件 ini
  • 如何在 SQL 中创建 REPLACE PATTERN?

    我有一个很长的 NVARCHAR 变量 我需要在其中替换一些模式 如下所示 DECLARE data NVARCHAR 200 Hello PAT1 stackoverflow PAT2 world PAT3 我需要全部更换 PAT 带有空
  • 分配给设备内存的 CUDA 全局(如 C 语言)动态数组

    因此 我尝试编写一些利用 Nvidia CUDA 架构的代码 我注意到与设备进行复制确实损害了我的整体性能 因此现在我尝试将大量数据移动到设备上 由于这些数据被用于许多函数 我希望它是全局的 是的 我可以传递指针 但我真的很想知道在这种情况
  • 查找两个字符串共享的所有 n 个字长子串的最大长度

    我正在制作一个Python脚本 它可以找到两个字符串共享的所有n个字长的子字符串的 最长可能 长度 忽略尾随标点符号 给定两个字符串 这是一个示例字符串 这也是一个示例字符串 我希望脚本识别出这些字符串具有 2 个共同单词的序列 this
  • Spring Boot Jackson 日期和时间戳格式

    application yml配置 jackson date format yyyy MM dd timestamp format yyyy MM dd HH mm ss serialization write dates as times
  • 这是从文件中读取行并将其拆分为 Rust 中的单词的正确方法吗?

    编者注 此代码示例来自 Rust 1 0 之前的版本 在语法上不是有效的 Rust 1 0 代码 此代码的更新版本会产生不同的错误 但答案仍然包含有价值的信息 我已经实现了以下方法来以二维数据结构返回文件中的单词 fn read terms