当前位置: 首页 > 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.zskr.cn/news/28060.html

相关文章:

  • 2025年10月PE管厂家对比榜:五家资质产能服务全盘点
  • 2025必看!平台型ITSM取代传统套装,成为企业ITSM选型新标杆
  • 实用指南:GelSight Modulus 视触觉3D轮廓仪助力航空航天精密检测
  • 2025 年加工中心厂家最新推荐榜,技术实力与市场口碑深度解析,助力企业精准选型160/1260/四轴/五轴/数控加工中心厂家推荐
  • 国产DevSecOps工具崛起:安全与效率的双重革命
  • 2025 年最新外墙涂料厂家推荐排行榜:聚焦优质产品与实力企业,助力建筑涂装高效选品
  • 2025年10月长白山亲子酒店排名榜:亲测十家安心入住
  • 类组件(Classcomponent)和函数式组件 (Functionalcomponent)之间有何不同?
  • 2025 年仿石漆厂家最新推荐品牌排行榜:聚焦真石漆水包砂等优质产品,助力采购方精准选品
  • D. Secret Passwords
  • Java EE初阶启程记02---认识线程 - 实践
  • springcloud中网关gateway总结
  • 郑州短视频代运营公司口碑榜:TOP3企业权威推荐
  • K.20
  • Docker 部署 Elasticsearch 全流程手册
  • AI元人文:创新决策、“躺平懒人”与针砭机制
  • TJ-26M-1612
  • MySQL的这6大雷区,大部分人都会踩中!
  • 实验台厂家哪家好?2025年度权威推荐榜单揭晓!
  • 2025年10月ai搜索排名优化推荐:头部企业合作案例选择列表
  • YOLOv11的ONNX Runtime加速推理指南-(跨平台部署的通用优化方案) - 指南
  • 排序算法学习笔记
  • 内网应用端口使用哪个范围的比较安全
  • 2025年10月AI搜索优化推荐:主流榜单对比与避坑指南
  • 2025 年国内喷雾干燥机最新推荐排行榜:聚焦优质品牌,助力企业精准选设备造粒/工业喷雾/陶瓷喷雾/制粒/奶粉喷雾干燥机厂家推荐
  • Python环境教程(一)-环境入门之pip conda
  • SQL Server 2008 R2 升级补丁需要注意的问题
  • pg数据库表的大小
  • 20251020_QQ_Cipher
  • 基于MATLAB/Simulink的光照强度模型构建方法