AS3:判断参数是int还是Number的函数
AS3: Function that determines if parameter is int or Number
我想编写一个函数,它接受 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 转换为字符串,然后检查它是否包含小数点,但我希望有更简单的方法。
我看到的主要问题是下面这句话:
The problem is I want it to be classified as a Number if the parameter has a decimal point like 1.00.
假设我们有一个名为 x
的 int
变量,我们将其设置为 1
。它看起来像 1
、1.00
还是 1x10^-1
?答案永远是否定的。即使有人输入:
myFunction(1.00);
这个数字实际上看起来仍然不像任何东西。这只是第一名。它的唯一表示基本上是它在实际机器位表示中的外观(浮点样式或只是 000...001
)。
它只是一个数字 - 无论是存储在 Number
变量还是 int
变量中。尝试将其转换为 String
无济于事,因为一开始就没有信息。您最接近的方法是使用 String
作为参数类型并查看是否有人调用 myFunction("1")
或 myFunction("1.00")
.
只有在确实需要时才做这样的事情,因为实际上可以存储在 String
中的内容范围很广。否则,您的 is
关键字应该是最好的选择。但是无论您选择哪个,都不要使用 Object
或无类型参数;使用 String
或(更优选)Number
.
我想编写一个函数,它接受 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 转换为字符串,然后检查它是否包含小数点,但我希望有更简单的方法。
我看到的主要问题是下面这句话:
The problem is I want it to be classified as a Number if the parameter has a decimal point like 1.00.
假设我们有一个名为 x
的 int
变量,我们将其设置为 1
。它看起来像 1
、1.00
还是 1x10^-1
?答案永远是否定的。即使有人输入:
myFunction(1.00);
这个数字实际上看起来仍然不像任何东西。这只是第一名。它的唯一表示基本上是它在实际机器位表示中的外观(浮点样式或只是 000...001
)。
它只是一个数字 - 无论是存储在 Number
变量还是 int
变量中。尝试将其转换为 String
无济于事,因为一开始就没有信息。您最接近的方法是使用 String
作为参数类型并查看是否有人调用 myFunction("1")
或 myFunction("1.00")
.
只有在确实需要时才做这样的事情,因为实际上可以存储在 String
中的内容范围很广。否则,您的 is
关键字应该是最好的选择。但是无论您选择哪个,都不要使用 Object
或无类型参数;使用 String
或(更优选)Number
.