2009-08-11 10 views
1

Futures.awaitAllには、可変数のwell ... Futureがあります。 awaitAllは、awaitAll(timeout : Long, fts : Future[Any]*)と定義される。私はListArrayに渡して試してみましたが、両方が動作しません。Scalaの反復パラメータをプログラムで設定する

list = future1 :: future2 :: Nil 

Futures.awaitAll(1000, list) 

found : List[scala.actors.Future[Any]] required: scala.actors.Future[Any] 

編集:私は今、やりたいことは、引数の可変数(nは1)と、プログラムの呼び出しFutures.awaitAllある。したがって、Futures.awaitAll(1000, future1, future2)を使用することはオプションではありません。スカラ座でのプログラミングの

章8.8のいずれかこの問題を解決する方法を私に任意のヒントを与えていないので、ヘルプには、*を使用すると、それは可変引数だということを意味

+0

これはPinSのどこかで言及されていますが、非常に簡単です。 –

答えて

10

...それはできるだけ多くの未来を取ることができます大歓迎です:)あなたが追加するときには[Any]のパラメータがありますが、それらのリストや配列はありません。

だから、のようなパラメータリストを探しています:代わりに

Futures.awaitAll(1000, list) 

編集の

Futures.awaitAll(1000, future1, future2) 

:あなたはFutures.awaitAll(1000年、リスト)に合格する能力を持っている必要がある場合は、それをキャストしてみてください。

だから、これを試してみてください。

Futures.awaitAll(1000, list: _*) 
+0

問題を明確にするために質問を変更しました。 – Sebastian

1
Futures.awaitAll(1000, futures: _*) 

は(今それをテストすることはできません)動作するはずです。 Scala Language Specificationの4.6.2を参照してください。

関連する問題