问题标签 [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.

0 投票
8 回答
10387 浏览

c# - C# 是单调度语言还是多调度语言?

我试图准确地理解单次和多次调度是什么。

我刚读到这个:
http ://en.wikipedia.org/wiki/Multiple_dispatch

从这个定义来看,在我看来,C# 和 VB.Net 是多调度的,即使在编译时选择调用哪个重载也是如此。

我在这里是正确的,还是我错过了什么?谢谢!

0 投票
9 回答
2633 浏览

c# - 什么是 - 单次和多次调度(与 .NET 相关)?

是否与重载相同,如果不是,请您提供每个 C# 中的示例

我已经阅读了对 SO 中提出的类似问题的回复......我不明白发布给它的回复。

类似的问题在这里问

编辑:在 C# 4.0 中使用新的“动态”关键字......这会使语言“多调度”启用吗?

0 投票
2 回答
19666 浏览

python - 如何将 functools.singledispatch 与实例方法一起使用?

Python 3.4添加了使用静态方法定义函数重载的能力。这基本上是文档中的示例:

在最纯粹的形式中,singledispatch实现依赖于第一个参数来识别类型,因此很难将此功能扩展到实例方法。

是否有人对如何使用(或 jerry-rig)此功能以使其与实例方法一起使用有任何建议?

0 投票
1 回答
323 浏览

python - 取消注册单次派送?

有没有办法为泛型“注销”已注册的函数?

例如:

0 投票
1 回答
115 浏览

c++ - 多态性和切片与引用

我没有完全理解 C++ 中的对象切片。在下面的示例代码中,两个对象似乎接受了相同的处理,但多态性仅适用于其中一个。

我正在使用引用,其中一个对象似乎没有被切片。我相信在 launch_ship 函数调用期间一定会发生一些事情,但我不知道到底出了什么问题。

这是示例代码。

输出:不想操作那艘低矮的飞船!

0 投票
2 回答
3526 浏览

oop - 如何在 julia 中创建一个“单一调度、面向对象的类”,其行为类似于具有公共/私有字段和方法的标准 Java 类

我在一本书中读到“你不能在 julia 中使用单一调度风格的方法创建传统的‘类’,比如obj.myfunc() ……我认为这听起来更像是一个挑战而不是事实。

因此,这是我的JavaClass类型,带有公共/私有字段和方法,只是为了在 Julia 中出现这样丑陋的东西所带来的震惊和恐怖因素,毕竟开发人员已经竭尽全力避免它:

示例使用:

本质上,构造函数变成了一个闭包,这就是创建“私有”字段和方法/重载的方式。有什么想法吗?(除了“OMG 为什么???你为什么要这样做??”
还有其他方法吗?
你能想象到什么情况下这可能会严重失败?

0 投票
1 回答
186 浏览

python - lru_cache 干扰由 single_dispatch 完成的类型检查

我有一个带有三个注册函数的方法调度装饰器。一个发送到int,效果很好。在自定义类型上调度的第二个也可以正常工作。第三种也是自定义类型,只不过Class是用lru_cache装饰器包裹的。

(为了让事情更复杂一点,这个类是通过另一个类的方法上的 methoddispatch 以一种迂回的方式实例化的__call__。)

在 Pitch 类中:

(还有很多事情要做,但这是不起作用的部分。)

基本上 - 如果我有 lru_cache,并将 QualifiedInterval 传递给函数,它不会调度并引发 NotImplementedError。如果我注释掉缓存装饰器,它就可以工作。REPL 的手动类型检查显示相同的类型(“QualifiedInterval”)。我尝试以几种不同的方式调用创建 QualifiedInterval 的命令,并尝试将其分配给变量。还是不行。我尝试在增强函数中进行显式类型检查。如果启用了缓存,类型检查也会失败。

0 投票
0 回答
577 浏览

python-3.x - 按值方法进行单次调度…

我正在从串行端口读取一些二进制数据。每个数据包可以包含由特定字节序列标识的宽数组(几十个左右)消息。为简单起见,让我们假设只有一个再见,以便0x01对应于第一条消息,依此类推。我希望能够调用一个process方法来处理每条消息。我可以有一个漫长而乏味的 if 循环,但这会很可怕。Asingledispatch似乎是一个更好的选择,但每条消息的类似乎 OO 已经完成,并且返回到用于创建这些的巨大 if 循环。

因此,我需要按处理方法的价值进行一次分派bytearray

像这样的东西:

我很清楚Łukasz Langa 的博客文章,但他的按值分派的实现Enum用作基类。我真正的Ook类继承自一个抽象类(所以我可以有一个模拟器而不是真正的硬件)并将它与Enumraises混合TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its base......

0 投票
1 回答
563 浏览

python - Singledispatch 装饰器不像宣传的那样工作

我正在测试 python 的singledispatchhttps ://docs.python.org/3/library/functools.html?highlight=singledispatch#functools.singledispatch

根据文件,A 块应该和 B 块一样工作。但是,您可以在输出中看到只有 Block B 按预期工作。

这里有什么问题?谢谢。

输出:

0 投票
2 回答
1950 浏览

python - 如何根据传递给函数的数据类型调度 Python 2 函数?

我想根据传递给“调度”函数(例如 using )的参数的数据类型来调度 Python 函数(例如使用dict 方法isinstance())。是否有实施替代方案?最简单的方法是什么?