我在Action脚本中看到了一个返回类型为*
的方法public function f(s:String):*
这[*]是什么意思?
答案 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。