Typed 数组
遗憾的是,ActionScript 3 没有泛型概念,因此无法将类型化数组定义为 Array<T>
。然而,有一个特殊的类 Vector.<T>
以类似的方式工作,除了你必须在实例化向量时提供对具体类的引用。这意味着无法在 Vector.<T>
类型之上构建抽象(例如扩展它并添加新功能),这是一个巨大的缺点。
一个更简单的方法是,你自动定义的每个类都有一个名为 Vector.<NameOfYourClass>
的伴随类。
话虽如此,与传统阵列相比,Vector.<T>
仍然有很大的优势:
- 使用
Vector.<T>
与阵列 1 时性能会有所提高。 - 如果你尝试将非 T 值插入集合,则会收到 compile-type
TypeError
s。 - IDE 为
Vector.<T>
实例内的对象提供有用的类型提示信息。
创建 Vector.<T>
的示例:
var strings:Vector.<String> = new Vector.<String>(); // or
var numbers:Vector.<Number> = new <Number>[];
1 使用原始类型(String
,int
,uint
,Number
等)时,向量实际上只能提供比数组更显着的性能改进。