通过Cargo传递程序参数

Jux*_*hin 8 rust

我有一些示例代码,目前正在使用getopts,它被指定为依赖项Cargo.toml

[dependencies]
getopts = "0.2"
Run Code Online (Sandbox Code Playgroud)

但是-t,由于显而易见的原因,我似乎无法--test通过货物(例如cargo run --test)传递参数(,).

由于我已经指定了外部依赖项,因此尝试运行rustc src/main.rs --test也不会起作用:

src/main.rs:2:5: 2:21 error: unresolved import `getopts::Options`. There is no `Options` in `getopts`
src/main.rs:2 use getopts::Options;
              ^~~~~~~~~~~~~~~~
error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以实现这一目标或暂时的替代方案?

Tar*_*ama 21

您可以将尾随参数传递给cargo run使用--:

cargo run -- --test
Run Code Online (Sandbox Code Playgroud)

man页面:

所有尾随参数都传递给二进制文件以运行.如果您将参数传递给Cargo和二进制文件,那么在--转到二进制文件之后,那些文件会转到Cargo之前.

  • @Juxhin:请注意,它通常用于调用其他程序的许多Unix工具中; 所以一般都知道这很好. (3认同)