5000164 is here
My writing is my life.
No results for undefined
Powered byAlgolia
Scala でコマンドライン引数を分解する

下記のように書くことでコマンドライン引数を分解できる。

val keyArgs = args.collect {
  case "--dry-run" => "dry-run"
}.toSet
val keyValueArgs = args.sliding(2).toList.collect {
  case Array("--date", specifiedDate: String) => "date" -> Some(specifiedDate)
}.toMap
--date "2018-05-15 00:00:00" --dry-run

のようなコマンドライン引数を渡した時に keyArgskeyValueArgs はそれぞれ下記のようになる。

// keyArgs
Set("dry-run")

// keyValueArgs
Map("date" -> Some("2018-05-15 00:00:00"))