当前位置: 首页 > news >正文

0265-CLAP-注解定义关联参数

环境

  • Time 2022-12-03
  • WSL-Ubuntu 22.04
  • CLAP 4.0.29

前言

说明

参考:https://docs.rs/clap/latest/clap/index.html

目标

使用注解来定义关联参数。

Cargo.toml

[package]
edition = "2021"
name = "game"
version = "1.0.0"[dependencies]
chrono = "0.4.23"
clap = {version = "4", features = ["derive"]}

main.rs

use chrono::{Datelike, Local};
use clap::{ArgGroup, Parser};/// 命令行参数
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
#[command(group(ArgGroup::new("born").required(true) .args(["age", "year"]),
))]
struct Args {/// 年龄#[arg(short, long,value_parser = clap::value_parser!(u8))]age: Option<u8>,/// 出生年#[arg(short, long,value_parser = clap::value_parser!(i32))]year: Option<i32>,
}fn main() {let args = Args::parse();if let Some(param) = args.age {println!("年龄是:{}", param);let year = Local::now().year();println!("出生年是:{}", year - param as i32);} else {let year = args.year.unwrap();println!("年龄是:{}", Local::now().year() - year);println!("出生年是:{}", year);}
}

查看帮助

root@jiangbo12490:~/git/game# cargo run -- -hCompiling game v1.0.0 (/root/git/game)Finished dev [unoptimized + debuginfo] target(s) in 0.55sRunning `target/debug/game -h`
命令行参数Usage: game <--age <AGE>|--year <YEAR>>Options:-a, --age <AGE>    年龄-y, --year <YEAR>  出生年-h, --help         Print help information-V, --version      Print version information

使用

root@jiangbo12490:~/git/game# cargo run -- -a 44Finished dev [unoptimized + debuginfo] target(s) in 0.02sRunning `target/debug/game -a 44`
年龄是:44
出生年是:1978
root@jiangbo12490:~/git/game# cargo run -- -y 1978Finished dev [unoptimized + debuginfo] target(s) in 0.02sRunning `target/debug/game -y 1978`
年龄是:44
出生年是:1978

总结

使用注解来定义了关联的参数。

附录

http://www.hskmm.com/?act=detail&tid=37164

相关文章:

  • 2025 年中频炉厂家最新推荐排行榜:聚焦节能智能设备,深度解析应达电气等优质企业核心优势 智能感应加热 / 新型 / 恒温 / 锻造用中频炉厂家推荐
  • 0264-CLAP-注解验证参数
  • 0263-CLAP-注解定义子命令
  • springcloud中常用的注解详解
  • 2025年10月PE管厂家对比榜:五家资质产能服务全盘点
  • 2025必看!平台型ITSM取代传统套装,成为企业ITSM选型新标杆
  • 2025 年车床生产厂家最新推荐榜,聚焦技术实力与市场口碑深度解析,助力企业精准选购优质设备斜轨 / 6140/6150/6180 数控车床厂家推荐
  • 2025年优质的自动液压压滤机,压滤机TOP厂家推荐
  • Ftrans内外网文件摆渡系统:数据安全跨网的智能解决方案
  • 2025年知名的防爆电加热器推荐TOP品牌企业
  • 0259-CLAP-自定义校验
  • 2025 年新材料 / 机械 / 医药 / 化工 / 无效专利律师推荐,冯燕青团队:双证资质与全产业链知识产权服务解析
  • 0257-CLAP-校验参数范围
  • 0256-CLAP-参数可选值
  • 2025年10月空气净化器产品推荐:全价位段性能榜横向对比
  • 【验证码逆向专栏】某 SDN 验证码逆向分析
  • 高压电缆生产厂家口碑榜:基于技术实力、客户服务及市场反馈的专业评估
  • 郑州短视频代运营公司口碑榜:TOP3企业权威推荐
  • 2025 年仿石漆厂家最新推荐品牌排行榜:聚焦真石漆水包砂等优质产品,助力采购方精准选品
  • D. Secret Passwords
  • Java EE初阶启程记02---认识线程 - 实践
  • 2025年10月北京口腔医院排行:十强机构对比指南
  • 基于TMS320F28034的全桥LLC电源控制
  • 2025年10月ai优化推荐:主流榜单对比与避坑指南
  • QOJ#12181. abc
  • 2025年10月ai优化推荐:全维度对比评价助你精准决策
  • 2025年10月ai搜索排名优化推荐:主流榜单对比与避坑指南
  • 2025 年润滑油厂家最新推荐榜,聚焦品牌技术实力与市场口碑深度解析润滑油回用 / 液压油润滑油过滤 / 液压油润滑油净化公司推荐
  • dokuwiki制作侧边栏
  • MySQL的这6大雷区,大部分人都会踩中!