如何检查 None 是否存在于 Future[Option] 列表中
How to check if a None exists in a List of Future[Option]
假设我们有:
val listOfYetToBeMaybePeople = List[Future[Option[Person]]]
如果所有元素都具有 Some(Person)
或 false
如果至少有一个是 None
?
Future.sequence(listOfYetToBeMaybePeople).map(!_.exists(_.isEmpty))
试试这个:
val listOfYetToBeMaybePeople: List[Future[Option[Person]]] =
val allExist: Future[Boolean] =
Future.sequence(listOfYetToBeMaybePeople).map(_.forall(_.nonEmpty))
解释:
sequence
将 Future
中的 List
转换为列表 的未来
forall
检查列表所有元素的谓词
nonEmpty
检查 Option
是否实际上是 Some
.
Returns 如果所有人都存在,true
的未来。
假设我们有:
val listOfYetToBeMaybePeople = List[Future[Option[Person]]]
如果所有元素都具有 Some(Person)
或 false
如果至少有一个是 None
?
Future.sequence(listOfYetToBeMaybePeople).map(!_.exists(_.isEmpty))
试试这个:
val listOfYetToBeMaybePeople: List[Future[Option[Person]]] =
val allExist: Future[Boolean] =
Future.sequence(listOfYetToBeMaybePeople).map(_.forall(_.nonEmpty))
解释:
sequence
将Future
中的List
转换为列表 的未来
forall
检查列表所有元素的谓词nonEmpty
检查Option
是否实际上是Some
.
Returns 如果所有人都存在,true
的未来。