I/O 项目:构建命令行程序

本章回顾了您到目前为止学到的许多技能,以及 探索更多标准库功能。我们将构建一个命令行 与文件和命令行输入/输出交互的工具,以练习一些 你现在已经掌握了 Rust 概念。

Rust 的速度、安全性、单二进制输出和跨平台支持使其 一种创建命令行工具的理想语言,因此对于我们的项目,我们将 制作我们自己的经典命令行搜索工具版本(Globally search a regular expression 和 print)。在 最简单的用例,在指定文件中搜索指定的字符串。自 这样做时,将文件路径和字符串作为其参数。然后它显示 该文件,在该文件中查找包含 String 参数的行,并打印 那些台词。grepgrepgrep

在此过程中,我们将展示如何使命令行工具使用终端 许多其他命令行工具使用的功能。我们将读取 environment 变量来允许用户配置我们工具的行为。 我们还会将错误消息打印到标准错误控制台流 () 而不是标准输出 (),例如,用户可以 将成功的输出重定向到文件,同时仍在屏幕上看到错误消息。stderrstdout

Rust 社区成员 Andrew Gallant 已经创建了一个完整的 精选的、非常快速的 版本,称为 。相比之下,我们的 版本将相当简单,但本章将为您提供一些 背景知识 您需要了解实际项目,例如 .grepripgrepripgrep

我们的项目将结合您到目前为止学到的一些概念:grep

我们还将简要介绍闭包、迭代器和 trait 对象,第 13 章第 17 章将介绍 详细封面。

本文档由官方文档翻译而来,如有差异请以官方英文文档(https://doc.rust-lang.org/)为准