as3中的* return类型是什么

时间:2010-01-31 13:29:11

标签: flex actionscript-3 adobe

我在Action脚本中看到了一个返回类型为*

的方法
public function f(s:String):*

这[*]是什么意思?

2 个答案:

答案 0 :(得分:8)

答案不是100%正确。没有“无类型”,*和Object之间只有很小的区别,因为有人可能认为Object也意味着无类型,因为每个类型都从Object扩展。 但是*表示未定义的值而对象不表示。一个很大的区别!这对于动态语言很有用,因为这意味着Object的属性可以是undefined,它与defined和null不同。

因此,例如y在{x:null}中未定义,x被定义但没有值。你可以利用它:

var yesNoMaybe: *;

yesNoMaybe = true;
yesNoMaybe = false;
yesNoMaybe = undefined;

答案 1 :(得分:7)

*符号表示“无类型”,表示类型可以是任何类型(并且值可以是undefined)。使用星号与根本不指定类型具有相同的效果,但使用它以明确您的意图是很好的形式。有关详细信息,请参阅language reference