13

假设我有一个 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

这似乎有点像黑客;-)

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

4

2 回答 2

26

Scala 提供了headOption一种完全符合您要求的方法:

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

scala> List().headOption
res1: Option[Nothing] = None
于 2013-10-30T18:37:20.000 回答
16

headOption是你需要的:

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

scala> List(1,2,3).take(1).headOption
res1: Option[Int] = Some(1)
于 2013-10-30T18:37:30.650 回答