立即捕获错误
如果配置文件丢失或损坏怎么办?如果那个环境变量的内容为空怎么办?这些情况很容易被遗忘!但得益于其错误处理方法和库设计,Rust 会在你运行程序之前就指出这些“万一”情况。
Rust 的错误处理如果配置文件丢失或损坏怎么办?如果那个环境变量的内容为空怎么办?这些情况很容易被遗忘!但得益于其错误处理方法和库设计,Rust 会在你运行程序之前就指出这些“万一”情况。
Rust 的错误处理Rust 允许你灵活地组织代码。可以从单个文件开始,当你需要更多功能时,自信地重构你的应用程序,而无需担心破坏任何东西。
重构 Rust编写命令行应用程序是学习 Rust 的好方法。
use clap::Parser;
/// Read some lines of a file
#[derive(Debug, Parser)]
struct Cli {
/// Input file to read
file: String,
/// Number of lines to read
#[structopt(short = 'n')]
num: usize,
}
use std::{error::Error, fs::read_to_string};
fn main() -> Result<(), Box> {
let args = Cli::parse();
read_to_string(&args.file)?
.lines()
.take(args.num)
.for_each(|line| println!("{}", line));
Ok(())
}
我们喜欢 Rust 的原因之一是 crates.io 生态系统。[...]已经有很多非常好的现有基础设施可用于构建出色的命令行界面。
—— Armin Ronacher,《Rust at Sentry – PolyConf 2017》
我非常乐意在这个代码库中工作,毫不后悔。[…]这对我来说算是意外之喜:使用 Rust 制作 CLI 或基于控制台的工具。它非常擅长为不同的目标系统进行编译。
—— Fletcher Nichol,《将 Rust 应用于生产环境 – RustFest Kyiv》