Typed 数组

遗憾的是,ActionScript 3 没有泛型概念,因此无法将类型化数组定义为 Array<T>。然而,有一个特殊的类 Vector.<T> 以类似的方式工作,除了你必须在实例化向量时提供对具体类的引用。这意味着无法在 Vector.<T> 类型之上构建抽象(例如扩展它并添加新功能),这是一个巨大的缺点。

一个更简单的方法是,你自动定义的每个类都有一个名为 Vector.<NameOfYourClass> 的伴随类。

话虽如此,与传统阵列相比,Vector.<T> 仍然有很大的优势:

  • 使用 Vector.<T> 与阵列 1 时性能会有所提高。
  • 如果你尝试将非 T 值插入集合,则会收到 compile-type TypeErrors。
  • IDE 为 Vector.<T> 实例内的对象提供有用的类型提示信息。

创建 Vector.<T> 的示例:

var strings:Vector.<String> = new Vector.<String>(); // or
var numbers:Vector.<Number> = new <Number>[];

1 使用原始类型(StringintuintNumber 等)时,向量实际上只能提供比数组更显着的性能改进。