AS3:确定参数是否为int或Number

时间:2015-09-15 19:24:16

标签: actionscript-3 types parameters

我想编写一个接受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转换为String然后检查它是否包含小数点,但我希望有一种更简单的方法。

1 个答案:

答案 0 :(得分:1)

我看到的主要问题是以下句子:

  

问题是,如果参数的小数点为1.00,我希望将其归类为数字。

假设我们有一个名为int的{​​{1}}变量,我们将其设置为x。它看起来像11还是1.00?答案永远不是。即使有人要输入这个:

1x10^-1

这个数字实际上看起来并不像什么。这只是第一名。它唯一的表示基本上是它在实际的机器位表示中(浮点式或myFunction(1.00); )。

全部是一个数字 - 无论是存储在000...001变量还是Number变量中。尝试将其转换为int无济于事,因为信息不是以此开头的。您最接近这一点的几乎就是使用String作为参数类型,看看是否有人呼叫StringmyFunction("1")

由于实际存储在myFunction("1.00")中的各种各样的东西,只有你真的必须这样做。否则,您的String关键字应该是最佳选择。但无论您选择哪一个,都不要使用is或无类型参数;使用Object或(更优选)a String