問題タブ [dispatch-table]

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.

0 投票する
2 に答える
2296 参照

php - PHPでクラス内にディスパッチテーブルを作成するにはどうすればよいですか?

プライベート ディスパッチ テーブルを持つクラスがあるとします。

私が電話したら

メソッドが文字列ではないというエラーが表示されます。次のような文字列にすると:

これにより 致命的なエラーが発生します: Call to undefined function $this->someFunction()

私も使用してみました:

メッセージの結果: call_user_func(SomeClass::$this->someFunction) [function.call-user-func]: First argument is expected to be a valid callback .

編集: $this が SomeClass のときに SomeClass::$this を呼び出しているため、これはあまり意味がないことに気付きました。配列を含むいくつかの方法でこれを試しました

これはまだ私が必要とするものを達成していません。

編集を終了

これは、クラスがなく、いくつかの関数を含むディスパッチ ファイルがある場合に機能します。たとえば、これは機能します:

これらをクラスのプライベートメソッドとして保持しながら、ディスパッチテーブルで使用できる方法があるかどうか疑問に思っています。

0 投票する
2 に答える
177 参照

.net - Booでディスパッチテーブルを作成するにはどうすればよいですか?

関数をハッシュテーブルに格納できるようにしたいと思います。次のようなマップを作成できます。

しかし、私はそれを呼び出すことができません:

これにより、次のエラーメッセージが生成されます。タイプ'object'で式を呼び出すことはできません。どちらもInvoke機能しませんCall

どうすればいいですか?私が推測していることから、ストアド関数は何かにキャストする必要があります。

0 投票する
7 に答える
3464 参照

perl - Perl でディスパッチ テーブルを実装するにはどうすればよいですか?

Perl でストレージ関連のアプリを作成する必要があります。アプリは、ローカル マシンから他のストレージ ノードにファイルをアップロードする必要があります。現在、アップロード方法は FTP ですが、将来的にはビットトレントまたは未知のスーパーファイル転送方法になる可能性があります。

アップロードが必要なファイルごとに、ファイル名、ファイルのアップロード先のストレージ ノード、およびアップロード中に使用する転送方法を定義する構成ファイルがあります。

もちろん、次の方法を使用して問題を解決できます。

しかし、学校で学んだ基本的な OO の知識をもってしても、これは良い設計ではないと感じています。(質問のタイトルは少し誤解を招く可能性があります。OO 以外のソリューションで私の問題を適切に解決できると思われる場合は、それで問題ありません。OO の知識が限られているため、実際にはより良いでしょう。)

では、一般的なアドバイスをいただけますか?もちろん、サンプルコードも提供していただけると大変助かります。

0 投票する
3 に答える
431 参照

perl - キーが空白を含み、配列パラメータを受け入れるサブルーチンを使用して、Perl でディスパッチ テーブルを作成するにはどうすればよいですか?

これが私の現在の考えですが、ディスパッチ/実行する方法がわかりません

私のコードを修正してください..どうもありがとう

0 投票する
2 に答える
385 参照

perl - Perl でディスパッチ テーブルを使用するにはどうすればよいですか?

重複の可能性:
Perl でディスパッチ テーブルを実装するにはどうすればよいですか?

int(rand()) などのコマンドを含むハッシュ テーブルがあります。これらのコマンドを実行するにはどうすればよいですか?

0 投票する
4 に答える
1961 参照

c++ - C++ のディスパッチ テーブル

次のようなものがあるとします。

次のような関数のディスパッチテーブルを定義する最良の方法は何だろうと思っています

クラスは C++ で記述されていますが、distanceTo 関数と構造体は C に拡張する必要があります。

ありがとう

0 投票する
1 に答える
428 参照

ruby - ディスパッチ テーブルが Ruby の method_missing に匹敵するのはいつですか?

ラムダのハッシュとして実装されたディスパッチ テーブルが、Ruby の method_missing をオーバーライドするよりも優れているとは言わないまでも、同じくらい良い状況はありますか? 私はRubyの比較的初心者ですが、以前はPerlのバックグラウンドがあり、ウィキペディアのディスパッチテーブルの例はPerlでも実装されているため、今日この手法を使用したためです;)参照:

http://en.wikipedia.org/wiki/Dispatch_table

いずれにしても、method_missing の代わりにディスパッチ テーブルを使用することの欠点は何ですか。以下の私のRubyコードが手がかりになるでしょうか?私のディスパッチ テーブルは非常に大きくなる可能性があり、別のコンテキストで使用するためにそこに含まれるラムダにアクセスする方法はありません。質問にはある程度答えているかもしれませんが、ディスパッチ テーブルが method_missing やその他のメタ プログラミング手法よりも優れたソリューションになる可能性があることに本当に興味があります。

0 投票する
3 に答える
1832 参照

objective-c - Objective-C でディスパッチ テーブルを実装する: セレクターの配列を宣言する方法

次のコード例でセレクターを呼び出せるように、ディスパッチ テーブルを実装しようとしています。

API のどのメソッドが呼び出されるかに影響するユーザー設定を保存しようとしています。現在、セレクターの文字列名を使用して NSSelectorFromString を使用していますが、それは少し面倒です。ディスパッチ テーブルを使用する場合は、代わりに列挙型を格納できます。

Objective-C でセレクターの配列またはディスパッチ テーブルを作成するにはどうすればよいですか?

編集:

セレクターの配列をプロパティとして設定しようとすると、コンパイラーからエラーが発生します。@property SEL[]コンパイルされません。

編集2:

KosherCocoa APIライブラリを使用しており、保存されたユーザー設定に基づいて、一度に 1 つのメソッドを呼び出したいと考えています。Plistファイルに保存して読み込んでいます。

0 投票する
3 に答える
1514 参照

c# - テキスト アドベンチャー ゲームのディスパッチ テーブルを実装するにはどうすればよいですか?

私はC# でテキスト アドベンチャーを作成していますが、switch ステートメントの代わりにディスパッチ テーブルを使用するよう提案されました。

switch ステートメントのコードは次のとおりです。

これをリファクタリングしてディスパッチ テーブルを使用するにはどうすればよいですか?

0 投票する
1 に答える
1848 参照

perl - 「厳密な参照」が使用されている間は、文字列 (「1」) をサブルーチン参照として使用できません

これはCan't use string ("1") as a subroutine ref while "strict refs" in useの複製であることはわかって いますが、ディスパッチ テーブルの呼び出しに関する問題が何であるかわかりません。コードは実行されているようですが、ログに次のエラーが表示されます。Can't use string ("1") as a subroutine ref while "strict refs" in use at C:/filepath/file.pl line 15.

カスタムモジュールを使用しているという事実と関係があるかどうかはわかりません.Perlにあまり慣れていないので、おそらくばかげているでしょうが、助けていただければ幸いです!