给出下面结合期货序列的代码,或者我总是打印“不好”,为什么结果是列表?
def future1 (i: Int) = Future { if (i==0) Right(1) else Left("error 1") }
def future2 (i: Int) = Future { if (i==0) Right(2) else Left("error 2") }
...
...
val f1 = future1(0)
val f2 = future2(0)
val f3 = Future.sequence(Seq(f1, f2))
f3.map { result =>
result match {
case List(r) => println("ok")
case _ => println("not OK)
}
}
答案 0 :(得分:3)
case List(r)
仅将一个元素与一个列表匹配,然后将其绑定到r
。
要检查结果是否为List
类型的实例,请使用
f3.map { result =>
result match {
case r: List[_] => println("ok")
case _ => println("not OK)
}
}