当场 捕获错误
如果配置文件丢失或损坏怎么办?如果环境变量的内容为空该怎么办?这些情况很容易忘记!但是借助它本身的错误处理方式和库设计,Rust 可以在您运行程序之前发现这些“假设”的情况。
Rust 的错误处理如果配置文件丢失或损坏怎么办?如果环境变量的内容为空该怎么办?这些情况很容易忘记!但是借助它本身的错误处理方式和库设计,Rust 可以在您运行程序之前发现这些“假设”的情况。
Rust 的错误处理Rust 能让您灵活地组织代码。从一个文件开始,当您需要更多功能时,有信心重构应用程序而不会破坏任何内容。
重构 Rust 代码编写命令行应用程序是学习 Rust 的一个好方法。
/// Read some lines of a file
#[derive(Debug, StructOpt)]
struct Cli {
/// Input file to read
file: String,
/// Number of lines to read
#[structopt(short = "n")]
num: usize,
}
use quicli::prelude::*;
use structopt::StructOpt;
fn main() -> CliResult {
let args = Cli::from_args();
read_file(&args.file)?
.lines()
.take(args.num)
.for_each(|line| println!("{}", line));
Ok(())
}
我们喜欢 Rust 的一个原因是 crates.io 的生态。[......] 现在有很多超棒的的基础设施来构建强大的命令行接口。
– Armin Ronacher, 《Rust 在 Sentry 中的应用》 – PolyConf 2017 大会
我很庆幸有这些代码库。 [......] 使用 Rust 来编写基于命令行或控制台的工具给我带来很大的好处,它针对不同的目标系统进行编译非常方便。
– Fletcher Nichol, 《把 Rust 带进生产环境》 – RustFest Kyiv大会