现在捕获错误
如果配置文件丢失或损坏怎么办?如果那个环境变量的内容为空怎么办?这些情况很容易忘记!但由于 Rust 对错误处理和库设计的方法,Rust 会在您运行程序之前指出这些“如果”情况。
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 在 Sentry - PolyConf 2017
我对生活在这个代码库中毫无遗憾。[...] 这对我来说是一个额外的奖励:使用 Rust 制作基于 CLI 或控制台的工具。它非常擅长为不同的目标系统编译。
– Fletcher Nichol, 将 Rust 推向生产 - RustFest 基辅