论坛首页 编程语言技术论坛

一个对Array类型强制转换的小陷阱

浏览 2226 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-04-23  
AS的类型转换有两种方式
第一种:
//括号形式
User(u).name = "zhangshan";

第二种:
//as表达式
(u as User).name = "zhangshan";

    对于一般的对象,这两种方法是等效的,转换失改时,第一种会抛异常,第二种会转换为空对象。
    但是对于数组Array,这两种是不一样的,as表达式的方法还是一样,不说了,使用括号就是不行,说一下。
//括号形式
var a:Object = new Array();
Array(a).push("zhangshan");
//这里会打出0来
trace(a.length);

    其实开发工具也有个警告,对数组使用强制转换等于新建了一个数组,所以对于数组只能用as表达式来进行转换。ArrayCollection没有类似问题。
   发表时间:2010-05-05  
LZ 非常仔细。
通常涉及到类型转换时我用 as,基本都不会出错。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics