#search #cli #demo

bin+lib r4_grrs

文件搜索工具

2 个版本

0.1.1 2023年6月14日
0.1.0 2023年6月14日

#79 in #demo

MIT 许可协议

8KB

my-first-cli-tool

已学到的内容

  • BufReaderread_to_string 更好
  • 我们可以轻松地用 return 替代 panic!
let result = std::fs::read_to_string("test.txt");
let content = match result {
    Ok(content) => { content },
    Err(error) => { return Err(error.into()); }
};
  • unwrap() 是与 panic! 匹配的快捷方式
  • Box<dyn std::error::Error>:这是一个可以包含任何实现了标准 Error 特性的类型的 Box。所有错误都可以放入这个 Box 中
fn main() -> Result<(), Box<dyn std::error::Error>> {
    // `?` expands to code that converts error types and returns error
    let content = std::fs::read_to_string("test.txt")?;
    println!("file content: {}", content);
    Ok(())
}

  • println! 告诉系统每次都要刷新到终端(从缓冲区到终端)
  • 按照惯例,Cargo 将在 tests/ 目录中查找集成测试。

参考

依赖项

~1.3–1.9MB
~35K SLoC