массив против вектора - PullRequest
       2

массив против вектора

3 голосов
/ 07 ноября 2011

Похоже, что в AS3, я могу в теории, расстаться с массивами, которые могут содержать только определенные типы данных:

private var my_array:Array.<String>;

выдает эту ошибку:
1199: параметры типа с непараметризованным типом

однако

private var my_vector:Vector.<String>;  

просто отлично.

Есть ли способ сделать эту работу с массивом?

Ответы [ 4 ]

4 голосов
/ 08 ноября 2011
[ArrayElementType("String")] 
public var newStringProperty:Array;

[ArrayElementType("Number")] 
public var newNumberProperty:Array;

http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html
к сожалению, такие массивы не предоставляют доступ к методам своего типа элемента, как это делают векторы:

var strings:Vector.<String> = new Vector.<String>();
strings.push('hello world');
trace(strings[0].charAt(2));
4 голосов
/ 07 ноября 2011

К сожалению, нет.

Синтаксис "Generic" является одноразовым и предоставляется только для Vector.Мне грустно от этого.Я бы использовал повсюду дженерики, если бы мог.

Вот еще обсуждение вопроса.

2 голосов
/ 08 ноября 2011

В настоящее время массивы вообще не принимают объявлений типов.

0 голосов
/ 07 ноября 2011

Вы можете просто передать элементы массива в конструктор. Если вам нужен параметризованный «массив», используйте вектор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...