問題タブ [single-dispatch]
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.
c# - C# は単一ディスパッチ言語ですか、それとも複数ディスパッチ言語ですか?
単一および複数のディスパッチとは何かを正確に理解しようとしています。
私はちょうどこれを読みました:
http://en.wikipedia.org/wiki/Multiple_dispatch
そして、その定義から、呼び出すオーバーロードの選択はコンパイル時に行われますが、C# と VB.Net は複数ディスパッチであると思われます。
私はここで正しいですか、それとも何か不足していますか? ありがとう!
c# - - 単一ディスパッチと複数ディスパッチ (.NET に関連) とは?
それはオーバーロードと同じですか、そうでない場合は、C#でそれぞれの例を提供してください
SOで尋ねられた同様の質問への回答を読みました...それに投稿された回答を理解できませんでした。
ここで尋ねられた同様の質問
編集: C# 4.0 の新しい「動的」キーワードを使用すると、言語の「マルチ ディスパッチ」が有効になりますか?
python - インスタンスメソッドで functools.singledispatch を使用するにはどうすればよいですか?
Python 3.4では、静的メソッドで関数のオーバーロードを定義する機能が追加されました。これは基本的にドキュメントの例です:
最も純粋な形式では、singledispatch
実装は型を識別するために最初の引数に依存しているため、この機能をインスタンス メソッドに拡張するのは困難です。
この機能を使用 (またはジェリーリグ) してインスタンス メソッドで動作させる方法について誰かアドバイスはありますか?
python - singledispatch の登録を解除しますか?
ジェネリックの登録済み関数を「登録解除」する方法はありますか?
例えば:
c++ - 参照によるポリモーフィズムとスライス
C++ でのオブジェクトのスライスを完全には理解していませんでした。次のコード例では、2 つのオブジェクトが同じ処理を受けているように見えますが、ポリモーフィズムが機能するのはそのうちの 1 つだけです。
参照を使用していますが、オブジェクトの 1 つがスライスされていないようです。launch_ship 関数の呼び出し中に何かが起こるに違いないと思いますが、何が問題なのか正確にはわかりません。
これがサンプルコードです。
output : あの低い宇宙船を操作したくない!
oop - パブリック/プライベート フィールドとメソッドを備えた標準 Java クラスのように動作する「単一ディスパッチ、オブジェクト指向クラス」を julia で作成する方法
「Julia では、従来の「クラス」をシングル ディスパッチ スタイルのメソッドで作成することはできない」という本を読んだのですが、obj.myfunc()
それは事実というよりは挑戦のように聞こえると思いました。
だからJavaClass
、開発者がそれを避けるために行ったすべての問題の後、ジュリアでこのような醜いものを持っているというまったくのショックと恐怖の要因のためだけに、パブリック/プライベートフィールドとメソッドを使用した私の型があります:
使用例:
基本的に、コンストラクターはクロージャーになります。これは、「プライベート」フィールドとメソッド/オーバーロードを作成する方法です。何かご意見は?( 「OMG Why??? なぜこれを行うのですか??」以外)
他のアプローチはありますか?
これが見事に失敗する可能性があると想定できるシナリオはありますか?
python - lru_cache は、single_dispatch によって行われる型チェックを妨害します
3 つの関数を登録したメソッド ディスパッチ デコレータがあります。1 つが にディスパッチされint
、正常に動作します。カスタムタイプでディスパッチされた 2 番目も問題なく動作します。3 番目もカスタム タイプですが、Class はlru_cache
デコレータでラップされています。
(もう少し複雑にするために、クラスは、__call__
別のクラスのメソッドのメソッドディスパッチを介して迂回的な方法でインスタンス化されます。)
Pitch クラスの内部:
(他にも多くのことが行われていますが、これは機能しないビットです。)
基本的に - lru_cache があり、QualifiedInterval を関数に渡すと、ディスパッチされず、NotImplementedError が発生します。キャッシュ デコレータをコメント アウトすると、機能します。また、REPL での手動の型チェックでは、どちらの方法でも同じ型 ("QualifiedInterval") が示されます。QualifiedInterval を作成したコマンドをいくつかの異なる方法で呼び出して、それを変数に割り当ててみました。それでもうまくいきません。Augmented 関数で明示的な型チェックを試みました。キャッシュが有効になっている場合、タイプチェックもそこで失敗します。
python - 関数に渡されたデータ型に基づいて Python 2 関数をディスパッチするにはどうすればよいですか?
「ディスパッチ」関数に渡される引数のデータ型に依存する (たとえば、 dict アプローチを使用して) Python 関数をディスパッチしたいと思います (たとえば、を使用isinstance()
)。実装の代替手段はありますか? 最も簡単なアプローチは何ですか?