过滤(A,选项[B])列表并从Option中提取值

时间:2014-09-24 20:38:00

标签: scala filter functional-programming

我有List[(A, Option[B])]。我想过滤掉第二个元素中包含None的所有元组,然后"展开" OptionList[A, B]

我目前正在使用这个:

list.filter(_._2.isDefined).map(tup => (tup._1, tup._2.get))

有没有更好的方法(更简洁)?

1 个答案:

答案 0 :(得分:7)

您可以使用模式匹配和collect

来完成
list.collect { case (a, Some(b)) => (a, b) }