【发布时间】:2015-09-15 19:24:15
【问题描述】:
我想编写一个函数,它接受一个 int 或一个 Number 作为参数,并根据它的类型做不同的事情。我的第一个问题是在签名、对象或数字中使用什么?我在考虑 Number,因为它涵盖了 int 和 Number。
function myFunction(p:Number):void { //Should p be of type Object or Number?
if (p is int) trace("Parameter is int.");
else if (p is Number) trace("Parameter is Number.");
}
问题是我希望它被归类为一个数字,如果参数有一个像 1.00 这样的小数点。那仍然会以 int 的形式出现。有谁知道如何做到这一点?我想我可以将 p 转换为字符串,然后检查它是否包含小数点,但我希望有更简单的方法。
【问题讨论】:
-
使用 Number 类型,Object 成本高(因为它是动态类型)。
-
为什么要区分
1.00和1的输入?我的猜测是你应该有两个不同的函数,比如myFunctionForInteger(i:int)和myFunctionForDecimal(n:Number),或者像muFunction(n:Number, decimalPrecision:int)这样的附加参数。否则,就不清楚函数期望什么。
标签: actionscript-3 types parameters