問題タブ [implicit-parameters]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Scala: 関数をインターセプトして Akka Futures で暗黙的なパラメーターを提供する
わかりました、Akka Futures を返す関数への一連の呼び出しがあり、flatMap と map を次のように使用してそれらを連鎖させています。
これは、さまざまな関数呼び出しに分散できます。これらの doAsyncCallX 呼び出しのそれぞれが Future[Result] を返すようになりました。これらの結果を構成し、最終的にチェーン内のすべての結果の構成された結果を返すことができるまでチェーンに渡したいと思います。
これを行うために、各 doAsyncCallX が前の結果の暗黙的なパラメーターを受け取り、取得した結果を前の結果と結合することを考えました。問題は、ライブラリの使用を次のような暗黙の値で散らかさない限り、これを行う方法がわからないことです。
私がやりたいことは、 flatMap のアプリケーションをインターセプトして、前の応答が次の doAsyncCallX 呼び出しの暗黙的なパラメーターとして正しく渡されるようにすることです。これを達成する方法について何か考えはありますか?
haskell - テンプレートHaskellと暗黙のパラメータ
テンプレートhaskellを使用して、暗黙的なパラメーターを使用して関数を作成したり、暗黙的なパラメーターを使用してバインディングを許可したりする方法はありますか?
つまり、テンプレートhaskellを使用して次のような署名を生成することは可能ですか?
または、次のような呼び出し:
テンプレートhaskellのAPIドキュメントで、このトピックについて役立つ適切な代数的データ型や関数を見つけることができませんでした。GHC7.4.2を使用しています。
テンプレートhaskellにこの拡張機能のネイティブサポートがない場合、コンパイル中にコードを挿入する他の可能性はありますか(テンプレートhaskell内の一般的な「コードインジェクション関数」のようなものですか?)。
編集:私はコメントからの提案を試しました、これは何が起こるかです:
これは機能しますが:
サポートされていないようです。
scala - 暗黙的な値の暗黙的な変換は、暗黙的なパラメーターを満たすことができますか?
特定の変更不可能な Java クラスのセットを簡単に操作できるように、いくつかの Scala 暗黙関数を定義しています。次の Scala コードは単純化された例ですが、明らかにクレイジーに見えます。現実の世界では、次のようなさまざまなメソッドで使用するために、Monkey、Tree、Duck から特定のリソース (年齢の数値ではなく) を暗黙的に取得しようとしていますpurchaseCandles()
。
3 回発生するコンパイラ エラー:
このサンプル コードが狂っているさまざまな方法はさておき、私の本当の疑問は、暗黙の値の暗黙の変換が Scala の暗黙のパラメーターを満たすことができるかということです。
scala - Scala の暗黙パラメーターと NullPointerException
整数と、その数値を処理するためのコードを持つ暗黙的なオブジェクトを取る関数を定義しようとしていますが、そのNullPointerException
理由がわかりません。最初のコードを削除するとprintln
、コードが機能します。
暗黙的なオブジェクトを定義する方法に問題はありますか?
これが私のコードです:
そして、これはエラーです:
scala - Scala で暗黙のパラメーターを使用してクラスを拡張する方法
class B(implicit imp: Int) extends AC { }
オブジェクト C は B{
}
エラー: パラメータ imp の暗黙的な値が見つかりませんでした
これは私が探していたものです:クラスレベルで暗黙的なパラメーターのデフォルト値を提供する方法
scala - Scalaは呼び出しスコープのすべての暗黙をキャプチャしますか?
いくつかの暗黙的な値が定義されているスコープA
と、それらの暗黙的な値を使用するコード ブロックc
があるとします。コード ブロックをにコピーすると、コンパイルして問題なく実行できるB
ように、互換性のある型の暗黙的なスコープもあります。もちろん、これは 2 つの場所で複製しているので醜いので、独自の関数に移動したいと思います。ここで、 の関数シグネチャは次のようになります。c
B
c
c
c
implicitArgs
で使用される暗黙の値はどこにありますかc
。一部のフレームワーク (私の場合は Scalding) が多くの暗黙を定義していることを考えると、ここでの署名はすぐに手に負えなくなります。「呼び出しスコープですべての暗黙的な値を運ぶ」と言う構文はありますか? または、これを回避する賢い方法はありますか?
乾杯、ジェフ
grails - where クロージャーで暗黙のパラメーターを参照する方法
where
クロージャー内で暗黙的なパラメーターを使用するにはどうすればよいですか?
現在の回避策を特に誇りに思っているわけではありません。
また、上記のような一般的な Groovy コードをクロージャー内に配置することで、クエリをパラメーター化できることにも気付きましたif
。不思議なことにparams
、ハックしなくても、条件文の内部で問題が発生することはありませんでした。この慣行は問題ありませんか、それとも推奨されませんか?
scala - Numeric[A] 型の暗黙的なパラメーターの使用は無視されるようです
Scala は初めてなので、 、 、 で遊んでいfold
ましreduce
たscan
。関数パラメーターで要素が渡される順序と、最終結果がどのように組み立てられるかを確認したかったのです。数値と文字列のリストで使用する予定だったので、型パラメーターを使用して次のヘルパー関数を定義しました。
Scala でジェネリック型パラメーターを使用したPost Additionは解決策を提案し、+ メソッドが操作するには数値型が必要であるという事実に焦点を当てているため、Numeric[A] 型の暗黙のパラメーターをメソッドに追加することでうまくいくはずです。不運にも:
[A:Numeric]
in instead を使用した構文(implicit n: Numeric[A])
も機能しません...
上記の投稿(以下のコード) で実装されているシングルトン オブジェクト「GenericTest」をコンパイルすると、同じエラー「検出: A、必要: 文字列」が発生します。
ここで何が欠けていますか?
私はScala 2.11.5を使用しています