- 接收命令行参数
use std::env;
let args: Vec<String> = env::args().collect();
let query = &args[1];
let file_name = &args[2];
println!("quey {} in file {}", query, file_name);
- 读取文件
use std::fs;
let content = fs::read_to_string(file_name).expect("Something went wrong when read file");
- 模块化
-- 将程序拆分为main.rs和lib.rs,业务逻辑都放到lib.rs
-- 命令行解析较少时可以在main.rs
-- 命令行解析变复杂时,提及提取到lib.rs
处理之后,留在main.rs的功能有
-- 使用参数值调用命令行解析逻辑
-- 进行其他配置
-- 调用lib.rs的run
-- 处理run可能出现的错误
source code can be found here