2

采取以下代码:

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 的唯一方法(忽略多维方面)。这里的问题是,在向量完全初始化之前,这一切显然都变成了一个数组。

但是,Vectors 不是旨在很大程度上取代 Arrays 成为更流畅、更有效的替代方案吗?这样做是不是一个特别糟糕的主意,这是否部分违背了使用 Vector 的全部目的?有没有更好的方法来做到这一点,还是我特别错过了什么?谢谢!

4

1 回答 1

4

实际上,您可以使用以下new <T>[]语法创建具有初始内容的新 Vector:

var vec:Vector.<Space> = new <Space>[/* your, items */];
// --------------------------^ Notice the lack of 'Vector.' before here.

您的示例使用全局Vector()方法从数组创建 Vector。

于 2013-08-05T04:34:16.347 回答