简介
Rust 是一种 静态编译的、快速的语言,具有出色的工具支持和迅速增长的生态系统,这使它非常适合编写命令行应用程序。在平时的生信分析中,大部分工具也是命令行形式。因此,从这个角度来说,Rust是非常适合应用于生信领域。作为一个命令行应用程序(CLI),最基本的要求是能够与外界进行参数传递。
获取参数
一种方式是通过Rust标准库提供的std::env::args() 方法,提供了运行时给定参数的迭代器。
另一种是当前最受欢迎的解析命令行参数的库clap。
args用法
1 | fn main() { |
clap用法
使用clap库前,需要提前导入clap库。1
2
3
4
5
6
7# 方法一
cargo add clap --features derive
# 方法二
直接在Cargo.toml中添加
clap = { version = "4.4.18", features = ["derive"] }
# 默认情况下,所有的 feature 都会被自动禁用;
# 以上配置为 clap 依赖开启了 derive feature;
简单案例1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34use clap::Parser;
fn main() {
let args = Cli::parse();
println!("{},{}",args.pattern,args.path);
}
/// 在文件中搜索并显示包含它的行;
#[derive(Parser)]
struct Cli {
/// 要查找的模式
#[arg(short = 's', long = "pattern")]
pattern: String,
/// 要读取的文件路径
#[arg(short = 'p', long = "path")]
path: String,
}
/*
$ cargo run -- -h
Finished dev [unoptimized + debuginfo] target(s) in 0.08s
Running `target\debug\learn_env.exe -h`
在文件中搜索模式并显示包含它的行;
Usage: learn_struct.exe --pattern <PATTERN> --path <PATH>
Options:
-s, --pattern <PATTERN> 要查找的模式
-p, --path <PATH> 要读取的文件路径
-h, --help Print help
很简单的,就可以打印出漂亮的帮助信息
*/
clap 还有更详细的配置信息,比如子命令模式等,下次再进一步学习。毕竟现在的目标是快速上手Rust,边实战边学习。