Scalaでプログラムで繰り返しパラメータを設定する

language-features scala variadic-functions
Scalaでプログラムで繰り返しパラメータを設定する

可変数のwellを使って Futures.awaitAll`を呼び出そうとしています…​ 「未来」 awaitAllは、awaitAll(timeout:Long、fts:Future [Any] *)と定義されています。 私は `List`と Array`を渡してみましたが、どちらもうまくいきません:

list = future1 :: future2 :: Nil

Futures.awaitAll(1000, list)

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

*編集:*私が今したいことは可変数の引数(1からn)を使ってプログラムで `Futures.awaitAll`を呼び出すことです。 したがって、 `Futures.awaitAll(1000、future1、future2)`を使うことは選択肢ではありません。

Scalaでのプログラミングの第8.8章では、これを解決するためのヒントも得られなかったので、助けを歓迎します。

  1  0


ベストアンサー

*を使用することはそれが可変であることを意味します…​それはあなたが追加するのと同じくらい多くのFuture [Any]パラメータを取ることができますが、それらのリスト/配列ではないです。

そのため、次のようなパラメータリストを探しています。

先物.awaitAll(1000、future1、future2)

の代わりに

Futures.awaitAll(1000、リスト)

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

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

Futures.awaitAll(1000、リスト:_ *)

10


Futures.awaitAll(1000、先物:_ *)

動作するはずです(今はテストできません)。 Scala言語仕様の4.6.2を参照してください。

1


タイトルとURLをコピーしました