3

我在弄清楚如何使用 Haxe 重载 Flash 中的函数时遇到了一些麻烦。我知道 Flash 不允许重载,但可以接受没有声明类型的函数参数,但我不确定如何在 Haxe 中复制这个技巧。

编辑:由于这似乎不可能,是否有任何已知的技巧可以用来解决这个限制?

4

3 回答 3

4

Haxe 网站有一个如何在此处实现此目的的示例:http: //old.haxe.org/ref/optional_args

我不认为 haxe 支持真正的方法重载……但不确定。祝你好运!

于 2010-05-10T00:45:02.760 回答
1

最近在 Haxe 邮件列表上对此进行了讨论:http: //lists.motion-twin.com/pipermail/haxe/2010-May/035650.html

最相关的帖子是 Haxe 的作者: http: //lists.motion-twin.com/pipermail/haxe/2010-May/035659.html

tl;dr 版本是因为 Flash 9 不支持它,所以他们删除了在所有平台上执行此操作的能力。

于 2010-05-10T07:54:23.457 回答
0

如果我正确阅读了您的问题,您可以使用类似于 AS3 中所做的技巧。如果您将函数声明为采用动态参数,则可以根据传递的参数的运行时类型执行不同的操作。例如

public function bar(param1:Dynamic, param2:Dynamic):Dynamic
{
  if(Std.is(param1, Float) && Std.is(param2, Float))
    doStuffWithFloats(param1, param2);
  else if(Std.is(param1, String) && Std.is(param2, String))
    doStuffWithStrings(param1, param2);
}
于 2012-02-25T01:08:29.390 回答