【发布时间】:2017-02-23 21:12:10
【问题描述】:
我已经写了这段代码
def m1(x: Int) = Future { if (x % 2 == 0) Some(x) else None }
def m2(x: Int) = Future { if (x % 2 != 0) Some(x) else None }
for {
x <- Some(3)
x1 <- m1(x)
x2 <- m2(x)
} yield x1 orElse x2
我的目标是代码应该首先打开 m1 的未来,如果它有一些,然后使用那个值。否则,它应该打开 m2 的未来并使用该价值。
但它总是出现编译时错误
<console>:26: error: type mismatch;
found : scala.concurrent.Future[Option[Int]]
required: Option[?]
x1 : Option[Int] <- m1(x)
^
【问题讨论】:
标签: scala