运行 没有值的 scopt 选项

Running a scopt option with no values

我正在使用 Scopt 在 Scala 中编写 CLI。

我想添加调用带或不带值的命令的功能。

例如:

CliUtility -o <value> <value> <value>

将发送值的 Seq[String]。

我希望也能够 运行 -o

CliUtility -o

我希望它发送一个空的 Seq[String],但我不知道如何处理它。

谢谢。

来自examples on github

arg[File]("<file>...") unbounded() optional() action { (x, c) =>
c.copy(files = c.files :+ x) } text("optional unbounded args")

生成以下用法文本:

  <file>...
    optional unbounded args

对应于 Config case class 中的 files: Seq[File]。 注意 unbounded 和 optional 的两个修饰符。这些使它可以生产任意数量的产品,这不是必需的。正如您在示例案例 class 代码中看到的,文件的默认值是一个空的 Seq,如您所愿。

最后但同样重要的是,我要提一下,您需要将 -o 设置为标志,类似于 github 示例使用 --verbose 的方式。