无法在Scala中使用布尔值的多个将来

时间:2019-02-16 12:09:39

标签: scala future for-comprehension

我有三个Futures,其返回类型为布尔型,但出现编译时错误,提示:

  

类型不匹配;找到:布尔值必需:字符串

这是我的代码:

val f1 = Future {  false }
val f2 = Future {  true }
val f3 = Future {  false }
val result = for {
  r1 <- f1
  r2 <- f2
  r3 <- f3
} yield (r1 + r2 + r3)

在此行获取错误

yield (r1 + r2 + r3)

我想念什么?

1 个答案:

答案 0 :(得分:4)

r1r2r3Boolean s。您正在尝试添加它们。

您打算如何添加Boolean

你是说

val result: Future[Boolean] = for {
  r1 <- f1
  r2 <- f2
  r3 <- f3
} yield r1 && r2 && r3

val result: Future[Boolean] = for {
  r1 <- f1
  r2 <- f2
  r3 <- f3
} yield r1 || r2 || r3

val result: Future[(Boolean, Boolean, Boolean)] = for {
  r1 <- f1
  r2 <- f2
  r3 <- f3
} yield (r1, r2, r3)