假设我有一个 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
这似乎有点像黑客;-)
将单个元素列表转换为选项的更好方法是什么?
假设我有一个 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
这似乎有点像黑客;-)
将单个元素列表转换为选项的更好方法是什么?
Scala 提供了headOption
一种完全符合您要求的方法:
scala> List(1).headOption
res0: Option[Int] = Some(1)
scala> List().headOption
res1: Option[Nothing] = None
headOption
是你需要的:
scala> List.empty.headOption
res0: Option[Nothing] = None
scala> List(1,2,3).take(1).headOption
res1: Option[Int] = Some(1)