我想创建一个将字符串数组作为构造函数参数并将命令行选项值作为成员 val 的类。类似下面的内容,但我不明白 Bistate 是如何工作的。
import scalax.data._
import scalax.io.CommandLineParser
class TestCLI(arguments: Array[String]) extends CommandLineParser {
private val opt1Option = new Flag("p", "print") with AllowAll
private val opt2Option = new Flag("o", "out") with AllowAll
private val strOption = new StringOption("v", "value") with AllowAll
private val result = parse(arguments)
// true or false
val opt1 = result(opt1Option)
val opt2 = result(opt2Option)
val str = result(strOption)
}
最佳答案
以下是用于获取 bool 值的模式匹配的较短替代方案:
val opt1 = result(opt1Option).isInstanceOf[Positive[_]]
val opt2 = result(opt2Option).posValue.isDefined
第二个可能更好。 posValue 字段是一个 Option(还有 negValue)。 Option 中的方法 isDefined 告诉您它是 Some(x) 还是 None。
关于command-line - 如何使用 scalax.io.CommandLineParser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/251746/