【问题标题】:Create list from command line args in Scala从 Scala 中的命令行参数创建列表
【发布时间】:2015-11-29 04:12:55
【问题描述】:

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

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

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

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

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

scala 的做法是什么?

【问题讨论】:

  • first、second、...的类型是什么?

标签: list scala command-line-arguments


【解决方案1】:

假设 CLI 提供了一个用逗号分隔的字符串,请考虑像这样分隔感兴趣的子字符串,

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

或像这样分隔单词,

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

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

methodsNames.map(methods)

【讨论】:

  • 但这会创建一个字符串列表(拆分本身会这样做)。我想要一个方法列表,其中方法是从 映射中获取的。
  • @navinpai 说明更新问题并补充有关获取方法的答案。
猜你喜欢
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 2023-03-31
  • 2021-12-17
  • 2013-02-21
相关资源
最近更新 更多