将1个元素的列表转换为Option

时间:2013-10-30 18:35:02

标签: scala collections converter option

假设我有一个List [T],我需要一个元素,我想将它转换为一个选项。

val list = List(1,2,3)
list.take(1).find(_=>true) // Some(1)

val empty = List.empty
empty.take(1).find(_=>true) // None

这似乎有点像黑客; - )

将单个元素列表转换为选项的更好方法是什么?

2 个答案:

答案 0 :(得分:26)

Scala提供的headOption方法可以完全符合您的要求:

scala> List(1).headOption
res0: Option[Int] = Some(1)

scala> List().headOption
res1: Option[Nothing] = None

答案 1 :(得分:16)

headOption就是您所需要的:

scala> List.empty.headOption
res0: Option[Nothing] = None

scala> List(1,2,3).take(1).headOption
res1: Option[Int] = Some(1)