在Flex中,我可以指定一个*
作为数据类型。 这是什么,我应该如何使用它。ActionScript *数据类型 - 它是什么?
我已经写了一个方法,该方法需要搜索某些内容并搜索某些内容。“要搜索的内容”看起来像是数据类型*
的重要候选。
我不应该使用它吗?
谢谢。
在Flex中,我可以指定一个*
作为数据类型。 这是什么,我应该如何使用它。ActionScript *数据类型 - 它是什么?
我已经写了一个方法,该方法需要搜索某些内容并搜索某些内容。“要搜索的内容”看起来像是数据类型*
的重要候选。
我不应该使用它吗?
谢谢。
*
表示无类型标识符。当你不能保证对象的类型符合任何特定的类或接口定义时,你会使用它。
您的示例中是否适用*
取决于您在搜索中使用的操作。如果你只是依靠普通的平等运作,你应该没问题,事实上它可能是最好的选择。
是的,它基本上就是'needle == haystack [i]'。 – Francisc
由于Object是Java,因此*是AS3。参阅以下内容:
http://livedocs.adobe.com/flex/3/html/help.html?content=03_Language_and_Syntax_11.html
如果启用了严格的编译模式,您必须使用*。这只是'没有类型',它会在运行时检查。
*
实际上明确表示,某事没有类型。实际上,它是默认类型,所有未定义类型的变量或函数都可以返回。
它基本上告诉编译器:“我不希望你对此进行任何类型检查,因为这只是在运行时处理”。
实际上*
是没有类型。根本没有相应的价值。
请注意,只有*
类型的表达式才能返回undefined
的值。任何类型为Object
(即与无类型不同类型的任何东西)只能容纳null
。
您会看到很多Array
方法使用该类型。这是因为Array
元素是没有类型因此可以是undefined
。
因此,根据您的参数是否输入*
或Object
(或者您是否使用严格比较),我想您可能会有轻微的性能差异。
就个人而言,我建议您在这种情况下使用*
,主要是因为它符合Array
方法。
谢谢。 [额外字符] – Francisc
这个问题与flex无关,但是关于AS3。 – back2dos
“无所事事”是错误的,我不确定它是否是Flex特定的或它是从AS继承的。 – Francisc