Haxe を使用して Flash で関数をオーバーロードする方法を理解するのに苦労しています。Flash ではオーバーロードが許可されていませんが、型が宣言されていない関数パラメーターを受け入れることができることはわかっていますが、Haxe でこのトリックを再現する方法がわかりません。
編集:これは可能ではないようですが、この制限を回避するために使用できる既知のトリックはありますか?
Haxe を使用して Flash で関数をオーバーロードする方法を理解するのに苦労しています。Flash ではオーバーロードが許可されていませんが、型が宣言されていない関数パラメーターを受け入れることができることはわかっていますが、Haxe でこのトリックを再現する方法がわかりません。
編集:これは可能ではないようですが、この制限を回避するために使用できる既知のトリックはありますか?
HaxeのWebサイトには、これを実現する方法の例があります: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 で行われているのと同様のトリックを使用できます。動的なパラメーターを受け取るように関数を宣言すると、渡されたパラメーターのランタイム型に基づいてさまざまなことを行うことができます。例えば
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);
}