[转]全局函数Vector()和构造函数 new Vector()

前些时候,发表了这篇文章:《Flex SDK 4.0以上版本可以在创建Vector实例时就指定元素了(创建Vector实例的新语法)》。后来在我新浪微博上的网友FlashYu给我评论:“以前不是有类似这样的写法吗?var v:Vector.<int> = Vector.<int>([0,1,2,3,4]);” 当时我没仔细看,否决了此说法。后来,他发来邮件,于是,有了此文章(也有了动力在中秋节的今天写了一篇关于技术的文章)。

Vector 类的构造函数只有一种情况:Vector(length:uint = 0, fixed:Boolean = false) ,我们无法像创建Array实例一样在创建Vector实例时指定元素,像这样的语法是不允许的:new Vector(1, 2, 3) 或 new Vector([1, 2, 3]) 。要想在创建Vector实例时指定元素,必须使用这样的语法:var v:Vector.<T> = new <T>[ T1, T2, T3, ... ]; 但,网友FlashYu所说的语法却是正确的:var v:Vector.<int> = Vector.<int>([0,1,2,3,4]); 注意了,等号右边没有关键字 new

为把事情说清楚,下面来一个总结。

以下三种写法都是正确的:

  • // 使用关键字 new 创建一个固定长度为 10 的 Vector 实例
    var v:Vector.<int> = new Vector.<int>(10, true);
  • // 使用关键字 new 创建一个包含 1、2、3 这三个元素的 Vector 实例
    var v:Vector.<int> = new <int>[1, 2, 3];
  • // 通过全局函数 Vector() 把类型为Array的 [1, 2, 3] 进行强制类型转换,转换为 Vector.<int> 类型。注意,没有使用关键字 new 。
    var v:Vector.<int> = Vector.<int>([1, 2, 3]);

以下写法有争议,我在Flash Builder(Flex SDK 4.0)上测试不报错却又测试不成功:

  • var v:Vector.<int> = new Vector.<int>([1, 2, 3]); // 执行 trace(v) 后输出空。

扩展阅读:

大家可以查阅《Adobe Flex 4.1 语言参考》,在这里(http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/package.html#Vector())说明了全局函数Vector()的使用方法;在这里(http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/Vector.html#Vector())说明了通过Vector()构造函数来创建实例的方法。

转载于:https://www.cnblogs.com/pelephone/articles/as3-vector-new-vector.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值