forを使ってリストを反復し、Futureを返すユーティリティを使用して各要素を変換しようとしています。短いストーリー、それはコンパイルされません、なぜ私は理解したいと思います。私はthis questionと似ていますが、大きな助けとなりましたが、私がやろうとしていることはさらに簡単になりました。私のような何かやろうとしている:スカラ先物とコレクションを補完のために組み合わせる
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
val numberList = List(1, 2, 3)
def squareInTheFuture(number: Int): Future[Int] = Future { number * number}
val allTheSquares = for {
number <- numberList
square <- squareInTheFuture(number)
} yield { square }
をそして私が取得することである:
error: type mismatch; found : scala.concurrent.Future[Int] required: scala.collection.GenTraversableOnce[?] square <- squareInTheFuture(number) ^
誰かが、これは動作しませんし、最善の選択肢は何か、なぜ私が理解するのに役立つことはできますか?