2011-09-17 71 views
0

在Flex中,我可以指定一个*作为数据类型。 这是什么,我应该如何使用它。ActionScript *数据类型 - 它是什么?

我已经写了一个​​方法,该方法需要搜索某些内容并搜索某些内容。“要搜索的内容”看起来像是数据类型*的重要候选。

我不应该使用它吗?

谢谢。

+0

这个问题与flex无关,但是关于AS3。 – back2dos

+0

“无所事事”是错误的,我不确定它是否是Flex特定的或它是从AS继承的。 – Francisc

回答

2

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

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

+0

是的,它基本上就是'needle == haystack [i]'。 – Francisc

1

如果启用了严格的编译模式,您必须使用*。这只是'没有类型',它会在运行时检查。

2

*实际上明确表示,某事没有类型。实际上,它是默认类型,所有未定义类型的变量或函数都可以返回。

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

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

您会看到很多Array方法使用该类型。这是因为Array元素是没有类型因此可以是undefined
因此,根据您的参数是否输入*Object(或者您是否使用严格比较),我想您可能会有轻微的性能差异。

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

+0

谢谢。 [额外字符] – Francisc