ActionScript *数据类型 - 它是什么?

时间:2011-09-17 22:44:55

标签: actionscript-3

在Flex中,我可以指定*作为数据类型。 它是什么以及我应该如何使用它。

我编写了一个inArray()方法,该方法将搜索和搜索内容作为参数。“要搜索的内容”看起来像是*数据类型的一个很好的候选者。 / p>

我不应该使用它吗?

谢谢。

4 个答案:

答案 0 :(得分:2)

*是AS3,因为Object是Java。请参阅以下内容:

http://livedocs.adobe.com/flex/3/html/help.html?content=03_Language_and_Syntax_11.html

答案 1 :(得分:2)

*表示无类型标识符。当您无法保证对象的类型符合任何特定的类或接口定义时,您将使用它。

示例中*是否合适取决于您在搜索中使用的操作。如果你只是依赖于共同的平等操作,你应该没事,事实上它可能是最好的选择。

答案 2 :(得分:2)

*实际明确地说,某些东西没有类型。实际上它是默认类型,所有无类型变量或函数都可以回归。

它基本上告诉编译器:“我不希望你对此执行任何类型检查,因为这只是在运行时处理”。

实际上* 没有类型。没有相应的价值。
请注意,只有*类型的表达式才能返回undefined的值。任何类型为Object的东西(即任何类型不同于无类型的东西)都只能保留null

您将看到许多Array方法使用该类型。具体而言,因为Array元素属于无类型,因此可以是undefined
因此,我认为根据您的参数是键入*还是Object(或者您是否使用严格比较),您可能会有轻微的性能差异。

就个人而言,我建议您在这种情况下使用*,主要是因为它与Array方法一致。

答案 3 :(得分:1)

启用严格的编译模式时必须使用*。它只是'没有类型',它将在运行时进行检查。