将地图选项展平为地图

nam*_*nam 6 scala

我有一个Map[A, Option[B]],最简单的方法是做一个flatten得到一个Map[A, B]

我知道列表我们可以使用flatten,但这种结构是不同的

Dan*_*don 15

好吧,它们不一样,所以你需要一种方法来定义如果值为None会发生什么.我假设您要忽略这些键,如果是这样,您可以使用部分函数进行收集:

map.collect {
  case (k, Some(v)) => k -> v
}
Run Code Online (Sandbox Code Playgroud)

或使用理解

  for ((k, Some(v)) <- map) yield k -> v
Run Code Online (Sandbox Code Playgroud)