actionscript-3 - Object、* 和根本没有类型之间有什么区别?

标签 actionscript-3 redundancy dynamic-typing weak-typing

这三个声明有什么区别吗?

var x;
var y:Object;
var z:*;

AS 中是否存在不是对象的东西?

最佳答案

var x;var x:*; 对编译器来说意味着完全相同的东西——变量可以接受任何类型。使用 :* 而不是省略类型来增强代码的可读性。

实际上,var x:Object; 是等效的,因为正如您所指出的,所有内容都源自 Object。但是,编译器以不同的方式对待它,如果您访问非对象属性,它往往会稍微慢一些。此外,正如其他答案所指出的,尝试将 undefined 分配给对象会自动将其转换为 null

如果您的变量可以接受多个不相关类型的值,我建议使用 :* ,而在使用对象作为关联数组时,我建议使用 :Object

关于actionscript-3 - Object、* 和根本没有类型之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3389836/

相关文章:

actionscript-3 - 在 AS3 中,将文本文件加载到字符串中

java - 编写高效且无冗余的测试

haskell - 这是 unsafeCoerce 的安全使用吗?

python - 在 Python 中强制/转换为正确类型的最佳位置

dynamic-typing - Matlab:为什么是 '1' + 1 == 50?

actionscript-3 - AS3 八哥 : Trying to add Video

actionscript-3 - 通过 ActionScript 3 在 Flash 中设置舞台消失点

actionscript-3 - Flex - 在后台运行空气应用程序

regex - 简化正则表达式 "ab|a|b"

Java删除数组中的冗余项