Scala:使用模式匹配构建Map

时间:2016-02-25 14:14:32

标签: scala

我正在尝试像这样构建一个Map[String, Any]

Map(
  somevalues match {
   Some(v) => ("myvalues -> v)
   None => ???
},

  othervalues match {
   Some(v) => ("othervalues -> v)
   None => ???
},
...etc
)

我应该将这个值用于无案例,因为在这种情况下我不想在地图中插入任何内容?

1 个答案:

答案 0 :(得分:3)

考虑

List(
  someValues match {
    case Some(v) => Some("myValues" -> v)
    case None => None
  },

  otherValues  match {
    case Some(v) => Some("otherValues" -> v)
    case None => None
  },
  ...
).flatten.toMap

或缩短:

List(
  someValues.map("myValues" -> _),

  otherValues.map("otherValues" -> _),
  ...
).flatten.toMap