请使用以下代码:
m_vectSpaces = new Vector.<Vector.<Space>>(9);
m_vectSpaces[0] = Vector.<Space>([
null,
null,
SpaceFactory.produceSpace(Space.BLANK, new Block()),
SpaceFactory.produceSpace(Space.BLANK, new Block()),
SpaceFactory.produceSpace(Space.BLANK, new Block()),
SpaceFactory.produceSpace(Space.BLANK, new Block()),
SpaceFactory.produceSpace(Space.BLANK, new Block())]);
就我所见,看起来这几乎是用一堆初始值实例化Vector的唯一方法(忽略多维方面)。这里的问题是,在Vector完全初始化之前,这显然都被转换为数组。
但是,不是设计用于在很大程度上取代阵列的矢量作为一种更加灵活,更有效的替代方案吗?这样做是一个特别糟糕的主意,这是否部分地击败了使用Vector的整个目的?有没有更好的方法来做到这一点,或者我特别遗漏了什么?谢谢!
答案 0 :(得分:4)
实际上,您可以使用new <T>[]
语法创建一个包含初始内容的新Vector:
var vec:Vector.<Space> = new <Space>[/* your, items */];
// --------------------------^ Notice the lack of 'Vector.' before here.
您的示例使用全局Vector()
方法从数组创建Vector。