Rust 命令行参数解析库

2023-09-10 language rust

当使用命令行时,参数管理通常比较复杂,尤其是随着子参数增多,通过 clap 三方库可以很方便进行管理。

简介

可以通过 cargo add clap --features derive 命令添加依赖,此时会在 Cargo.toml 中添加如下内容,这也可以手动添加。

clap = { version = "4.4.6", features = ["derive"] }

如下是一个简单的示例。

use clap::Parser;

/// Simple program to greet a person
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
    /// Name of the person to greet
    #[arg(short, long)]
    name: String,

    /// Number of times to greet
    #[arg(short, long, default_value_t = 1)]
    count: u8,
}

fn main() {
    let args = Args::parse();

    for _ in 0..args.count {
        println!("Hello {}!", args.name)
    }
}

这是官方提供的 derive 方式实现。