問題タブ [partialfunction]
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 - PartialFunction を通常の関数と組み合わせる
したがって、次の「すべてをキャッチ」フォールバックを提供したいとしますPartialFunction
。
これはコンパイルされません: missing parameter type for expanded function ((x$1) => x$1.toString)
. これ:
どちらもコンパイルしません (同じエラー)。
これ:
で失敗しますtype mismatch; found : Int => String; required: PartialFunction[?,?]
それを機能させるために私が見つけた唯一の方法は、すべてを綴ることです:
これに適した構文はありますか? つまり、int から string への部分関数を、in から string への部分関数を受け取ることが期待される場所に渡していることを伝える必要はありません。これはまったく曖昧ではありませんが、なぜこれをしなければならないのですか?
scala - Scalaで演算子orElseを使用する正しい方法は何ですか?
2 つのサービスを作成し、 orElseを使用して 2 つのサービスを結合させたいと考えています。つまり、service_one または service_two です。それらはすべて PartialFunction です。
サービス 1 は次のとおりです。
サービス2は次のとおりです。
そして、私は一緒に結合したい.
エラーは次のとおりです。
ケースが最初のサービスのパスと一致する場合は最初のサービスが機能し、ケースが2番目のサービスのパスと一致する場合は、結合してから作成する方法が機能します。2回目のサービス作業。
ps:関係者として:
HttpService オブジェクトは次のように定義されます。
scala - PartialFunction を別の関数と組み合わせて PartialFunction を返すには?
私は次のクラスを持っています:
は次Recieve
のように定義されています
val
ここでは、 を保持する宣言を避けPartialFunction[Any, Any]
て、このように呼ぶようにしました。しかし、コンパイラはこのコードを拒否します。それは印刷します:
このようなことを行う短い方法はありますか?
scala - Scala 部分関数アプリケーションのセマンティクス + 同期によるロック
ロックの等価性ではなく値の等価性に基づくロックに関する以前の質問に基づいて、次の実装を思いつきました。
ロックが期待どおりに機能することを確認するために、いくつかのテストを作成しました。
上記のテストは期待どおりに機能します (何百万回もテストされています)。しかし、次の行を変更すると:
これに:
テストは失敗します。
期待される:
また
実際:
上記の 2 つのコードは同じである必要がありますが、コードの 2 番目のフレーバー (部分的に適用されたもの)のテスト (つまり、lock(id)
同じ に対して常に同時に入力されます) です。id
なんで?