2010-05-09 54 views
3

我在使用Haxe的Flash中重載函數時遇到一些問題。我知道Flash不允許重載,但可以接受沒有聲明類型的函數參數,但我不確定如何在Haxe中複製這個技巧。Haxe中的Flash函數重載

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

+0

什麼*確切*你想完成?你提到方法重載和類型推斷,但是你不清楚你想要做什麼。提供一些僞代碼會有幫助... – heavilyinvolved 2010-05-11 20:11:28

回答

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

的文藝青年最愛的版本,是因爲Flash 9不支持他們刪除了爲所有平臺執行此操作的能力。

+0

這些帖子與問題的內容並不完全相關。這些帖子討論了子類中的方法用不同的方法簽名覆蓋超類方法。 – davr 2010-05-11 01:28:48

0

如果我正確地閱讀你的問題,你可以使用類似於在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); 
}