簡體   English   中英

Haxe中的Flash函數重載

[英]Flash function overloading in Haxe

我在查找如何使用Haxe重載Flash中的函數時遇到了一些麻煩。 我知道Flash不允許重載,但可以在沒有聲明類型的情況下接受函數參數,但我不確定如何在Haxe中復制這個技巧。

編輯:由於這似乎不可能,有沒有任何已知的技巧可以用來解決這個限制?

Haxe網站有一個如何實現這一目標的例子: http//old.haxe.org/ref/optional_args

我不認為haxe支持真正的方法重載......但不確定。 祝好運!

最近在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不支持它,他們刪除了為所有平台執行此操作的能力。

如果我正確地閱讀你的問題,你可以使用類似於AS3中所做的技巧。 如果聲明函數采用Dynamic參數,則可以根據傳遞的參數的運行時類型執行不同的操作。 例如

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM