12 一个I/O项目:构建命令行程序
本章我们将会构建一个与文件和命令行输入/输出交互的命令行工具来练习已经学过的Rust技能
Rust的运行速度、安全性、单二进制文件输出和跨平台支持使其成为创建命令行程序的绝佳选择,所以我们将创建一个我们自己的经典命令行工具grep(globally research a regular expression and print)
Grep最简单的使用场景是在特定文件中搜索指定字符串
在这个过程中,我们的命令行工具会用到终端功能,读取环境变量来使得用户可以配置工具,打印到标准错误控制流而不是标准输出。这样用户可以选择将成功输出重定向到文件中同时也能够在屏幕上显示错误信息
并且我们在本章会涉及代码组织、vector和字符串、错误处理、trait和生命周期以及测试,另外闭包、迭代器我们也会了解一点点
12.5 处理环境变量
我们来为minigrep程序增加一个功能:让用户搜索的时候区分大小写
还是一贯的流程,我们先来编写测试函数,然后再修改代码让测试通过
#[test]
fn case_sensitive(){
let query = "duct";
let contents = "\
Rust:
safe,fast,productive.
Pick three.
Duct tape.";
assert_eq!(
vec!["safe,fast,productive."],
search(query,contents)
);
}
这个测试是去区分大小写的