问题标签 [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 中的类中创建调度表?

假设我有一个带有私人调度表的课程。

如果我再打电话

我收到一个错误,该方法不是字符串。当我把它变成这样的字符串时:

这会产生 致命错误:调用未定义函数 $this->someFunction()

我也尝试过使用:

导致消息: call_user_func(SomeClass::$this->someFunction) [function.call-user-func]: 第一个参数应该是一个有效的回调

编辑:我意识到这并没有真正的意义,因为当 $this 是 SomeClass 时它正在调用 SomeClass::$this。我已经尝试了几种方法,数组包含

这仍然没有完成我所需要的。

结束编辑

如果我没有类并且只有一个带有一些功能的调度文件,这将有效。例如,这有效:

我想知道是否有一种方法可以让我仍然将这些作为私有方法保留在类中,但仍然可以将它们与调度表一起使用。

0 投票
2 回答
177 浏览

.net - 如何在 Boo 中创建调度表?

我希望能够将函数存储在哈希表中。我可以创建一个像这样的地图:

但我不能称之为:

这会产生以下错误消息:无法在类型 'object' 上调用表达式。既不工作Invoke也不Call工作。

我该怎么做 ?从我的猜测来看,存储的函数应该被转换为某种东西。

0 投票
7 回答
3464 浏览

perl - 如何在 Perl 中实现调度表?

我需要在 Perl 中编写一个与存储相关的应用程序。该应用程序需要将文件从本地机器上传到其他一些存储节点。目前上传方式是FTP,未来可能是bittorrent或者一些未知的超级文件传输方式。

对于每个需要上传的文件,都有一个配置文件,其中定义了文件名、文件上传到的存储节点以及上传时应该使用什么传输方式。

当然,我可以使用以下方法来解决我的问题:

但是即使我在学校学到了基本的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 一样好?

在任何情况下,实现为 lambda 哈希的调度表可能与覆盖 Ruby 的 method_missing 一样好,甚至更好?我之所以问,是因为我今天使用了这种技术,因为我是 Ruby 的新手,但之前有 Perl 背景,维基百科中的调度表示例甚至是用 Perl 实现的;)请参阅:

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

无论如何,使用调度表而不是 method_missing 有什么缺点。也许我下面的 Ruby 代码提供了线索?看起来我的调度表可能会变得非常大,并且无法访问它包含的 lambdas 以在另一个上下文中使用。所以也许我在某种程度上回答了我的问题,但我真的很感兴趣,什么时候调度表可能是比 method_missing 或其他元编程技术更好的解决方案,谢谢

0 投票
3 回答
1832 浏览

objective-c - 在 Objective-C 中实现调度表:如何声明选择器数组

我正在尝试实现一个调度表,以便可以使用以下示例代码调用选择器:

我正在尝试存储影响 API 的哪个方法被调用的用户偏好。现在,我使用选择器的字符串名称并使用 NSSelectorFromString,但这有点乱。如果我使用调度表,那么我可以存储一个枚举。

如何在 Objective-C 中创建选择器数组或调度表?

编辑:

当我尝试将选择器数组设置为属性时,编译器会抱怨。@property SEL[]不会编译。

编辑2:

我正在使用我的 KosherCocoa API库,我想根据保存的用户设置一次调用一个方法。我正在保存和读取 Plist 文件。

0 投票
3 回答
1514 浏览

c# - 如何为文本冒险游戏实现调度表?

我正在C# 中进行文本冒险,有人建议我使用调度表而不是 switch 语句。

这是switch语句代码:

如何重构它以使用调度表?

0 投票
1 回答
1848 浏览

perl - 在使用“strict refs”时,不能使用字符串(“1”)作为子例程 ref

我知道这是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 不是非常熟悉,但任何帮助将不胜感激!