构建带参数的控制台应用程序时,可以使用传递给的参数Main(string[] args).
在过去,我只是索引/循环该数组并完成一些正则表达式来提取值.但是,当命令变得更复杂时,解析会非常难看.
所以我对以下内容感兴趣:
假设命令始终遵循通用标准,例如此处的答案.
在Java中解析命令行参数的好方法是什么?
我想以下列方式将参数传递给我的C++程序:
./myprog --setting=value
Run Code Online (Sandbox Code Playgroud)
是否有任何图书馆可以帮助我轻松完成这项工作?
在Java中你可以:
public enum Enum {
ONE {
public String method() {
return "1";
}
},
TWO {
public String method() {
return "2";
}
},
THREE {
public String method() {
return "3";
}
};
public abstract String method();
}
Run Code Online (Sandbox Code Playgroud)
你是如何在Scala中做到这一点的?
编辑/有用的链接:
我想用scala写一些命令行工具。我找到了一个存储库conscript,它似乎就是我正在寻找的,但缺乏文档和示例,我在使用它创建一个简单的演示时遇到了很多麻烦Hello world。
还有其他方法可以使用scala编写命令行工具吗?
def main(args: Array[String]) {
if (args.length == 0) println(usage)
val argList = args.toList
type OptionMap = Map[Symbol, Any]
def nextOption(map: OptionMap, list: List[String]): OptionMap = {
list match {
case Nil => map
case "-h" | "--help" :: tail => usage(); sys.exit(0)
case "-p" | "--port" :: option :: tail => nextOption(map ++ Map('port -> option.toInt), tail)
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法捕获更多的头部价值List?此代码生成
type mismatch;
found : String("-h")
required: List[String]
case "-h" | "--help" :: tail => usage(); sys.exit(0)
^
Run Code Online (Sandbox Code Playgroud)
可能重复: …