【发布时间】:2016-08-26 15:05:35
【问题描述】:
如果其中一个选项失败(封装在 Future 中),我想将 List[Option[List[Double]]] 转换为产生 None 的 Option[List[List[Double]]]。通常我应该能够使用 Scalaz 库中的.sequence。但是,当我遇到以下问题时:
val matrix = for {
listOfOptions <- futureListOfOptions
optionOfList <- listOfOptions.sequence
} yield optionOfList
matrix: Future[Nothing]listOfOptions: scala.List[Option[scala.List[Double]]]optionOfList: Any
我做错了什么?
【问题讨论】:
-
“我做错了什么?” -- 我认为最错误的事情是拥有像
Future[List[Option[List[Double]]]这样的类型,你最好将它们展平。 -
在我的情况下,如果一个选项失败,我希望它产生
None,如果我将它展平,我没有那个。我有这个“混乱”,因为它来自Map类型为Future[Option[List[Double]]]的值(向服务器查询向量,因此是未来)。 -
应该不错,可能是你的IDE丢了?尝试在我想说的 val 声明中输入矩阵。
-
?这没有任何意义..“如果一个选项失败”?
-
你的一切类型是什么以及你想要的
matrix的类型