如何将Future[Option[A]]转换为Future[A]
我是 Scala 的新手,想知道我们如何转换Future[Option[A]]
为Future[A]
回答
由于 anOption[A]
可能是None
,如果要将其转换为 an A
,最直接的方法是使用该.getOrElse(value)
方法,A
如果选项本身没有,则需要提供 type 的默认值以使用。
val opt1 = Some(3)
opt1.getOrElse(5) //returns 3
val opt2 = None
opt2.getOrElse(5) //returns 5
然后,如果你有一个Future[Option[A]]
,你想.map
在未来的方法中做到这一点:
val futureOpt: Future[Option[Int]] = Future{ Some(3) }
val future: Future[Int] = futureOpt.map{opt => opt.getOrElse(5)}