假设我有一个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
这似乎有点像黑客; - )
将单个元素列表转换为选项的更好方法是什么?
答案 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)