【发布时间】:2011-11-19 23:14:51
【问题描述】:
我想要一个能够接受各种类型的函数。 AS3 不支持直接重载...所以我不能做以下事情:
//THIS ISN'T SUPPORTED BY AS3
function someFunction(xx:int, yy:int, someBoolean:Boolean = true){
//blah blah blah
}
function someFunction(arr:Array, someBoolean:Boolean = true){
someFunction(arr[0], arr[1], someBoolean);
}
我怎样才能解决它并且仍然拥有能够接受各种类型参数的函数?
【问题讨论】:
-
我相信你会得到你的答案,但我只是好奇你为什么要使用方法重载?我有时会达到某个点,这确实有助于解决一个快速的问题,但我认为这是不好的做法,所以我不这样做。
-
我同意马蒂亚斯的观点。没有对重载的本机支持,让函数接受可变参数是不好的做法(除非在与重载无关的非常非常特殊的情况下)
-
方法重载对于任何语言来说都是非常方便的补充。它会让像数学课这样的东西变得容易得多;不再有 multPoint()、multScalar() 等,你可以只拥有 mult()
-
@divillysausages 酷。有什么好的例子吗?
-
as3 并不真正支持它。我见过的最好的就是 zzzzBov 的回答:
function mult( param:* ):void { if (param is Point) this._multPoint(); else if (param is Number) this._multScalar(); }
标签: actionscript-3 actionscript overloading