特定の暗黙のパラメータを受け入れる関数を引数とする高次関数を望みます。Scalaの暗黙的なパラメータを持つ関数のタイプ
より正確には、暗黙のコンテキストに依存するFuture
作成メソッドを使用し、コンテキストに依存しないメソッドを返す関数を作成しようとしています。
、より具体的のは、私はこのような何かがあることを言うようにする:私はprovideCtx(foo)
を呼び出す場合、
def provideCtx[A](func: ExecutionContext => A): A = {
val ctx = setupCtx
func(ctx)
}
しかし:私はこのようなメソッドを持っているしたいと思います
def foo(a: Int)(implicit ctx: ExecutionContext): Future[Float] = future { somelongBar... }
をコンパイラは、暗黙的な実行コンテキストが不足していると不満を持ちます。
私がExecutionContextを扱っているという事実はあまり重要ではありません。私が見つけたいのは、特定の型の暗黙の引数を持つ関数を受け入れるためにパラメータ型を書く方法です。暗黙的な部分はカリー化された引数なので、実際には私のような関数があることを理解しています:ExecutionContext => Int => Future[Float]
、実行時には、jvmはExecutionContextが暗黙的であることを知りませんが、コンパイラにそれを理解させる。
確かに、私は今、非常に似たようなものを書いてしまいました。ちょっと面倒です。 – Mortimer