4
我有一個List[(A, Option[B])]
。我想過濾出第二個元素中包含None
的所有元組,然後「解開」Option
,給出List[A, B]
。過濾(A,選項[B])的列表並從選項中提取值
我目前使用這樣的:
list.filter(_._2.isDefined).map(tup => (tup._1, tup._2.get))
有沒有更好的辦法(更簡潔)?
我有一個List[(A, Option[B])]
。我想過濾出第二個元素中包含None
的所有元組,然後「解開」Option
,給出List[A, B]
。過濾(A,選項[B])的列表並從選項中提取值
我目前使用這樣的:
list.filter(_._2.isDefined).map(tup => (tup._1, tup._2.get))
有沒有更好的辦法(更簡潔)?
您可以通過模式匹配和collect
做到這一點:
list.collect { case (a, Some(b)) => (a, b) }
不錯!我會嘗試一下。 – Ralph 2014-09-24 20:41:03