4
想象一下,您有一个Map[Option[Int], String]
,并且您想要一个Map[Int, String]
丢弃包含None
作为关键字的条目。从Scala集合中提取选项的最简单方法
又如,这应该以某种方式相似是List[(Option[Int], String)]
并将其转换为List[(Int, String)]
,再次丢弃含有None
作为第一元件的元组。
什么是最好的方法?
想象一下,您有一个Map[Option[Int], String]
,并且您想要一个Map[Int, String]
丢弃包含None
作为关键字的条目。从Scala集合中提取选项的最简单方法
又如,这应该以某种方式相似是List[(Option[Int], String)]
并将其转换为List[(Int, String)]
,再次丢弃含有None
作为第一元件的元组。
什么是最好的方法?
collect
是你的朋友在这里:
scala> data collect { case (Some(i), s) => (i,s) }
res4: scala.collection.immutable.Map[Int,String] = Map(1 -> data)
val data = Map(Some(1) -> "data", None -> "")
scala> data.toList collect { case (Some(i), s) => (i,s) }
res5: List[(Int, String)] = List((1,data))