从Scala中的命令行参数创建列表

时间:2015-09-03 10:57:48

标签: list scala command-line-arguments

在我的scala main方法中,我使用import org.apache.commons.cli.{BasicParser, Options}来解析命令行参数。其中一个参数是一个逗号分隔的字符串,它列出了我想要运行的方法。

我有一个将字符串映射到方法的地图,例如。

val methods = Map("first" -> first, "second" -> second, "third" -> third)

现在从我的命令行arg,我想创建一个我想要运行的方法列表。即如果我将arg作为"first,second",则列表应包含List(first,second),但如果我将arg作为"first,third",则列表应包含List(first,third)

我知道列表是不可变的,所以我不能迭代并添加。

这样做的scala方式是什么?

1 个答案:

答案 0 :(得分:0)

假设CLI提供带逗号分隔词的字符串,请考虑将感兴趣的子串分开,如下所示

val methodNames = "first,second".split(",").toList

或将这些词分开,

val methodNames = "first,second".split("\\W+").toList

因此,要从列表中获取方法,请考虑

methodsNames.map(methods)