5000164 is here

Scala でコマンドライン引数を分解する

Published 2018.5.15 by 菅原 浩

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

1
2
3
4
5
6
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
1
--date "2018-05-15 00:00:00" --dry-run

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

1
2
3
4
5
// keyArgs
Set("dry-run")

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