суббота, 3 октября 2009 г.

Первые опечатки с новым классом Vector

Если вы еще не знаете, то Vector — это новый класс во Flash Player 10. По способу использования он является типизированным массивом, о котором мечали еще флэшеры семидесятых. Vector не только типизирован, но и дает более производительный код (очевидно, его внутрення природа — не простая обертка вокруг массива). Вот статья по классу Vector для начинающих.


Понять класс Vector легко


Еще легче, чем кодироват. Пара минут может уйти на привыкание к синтаксису. Он немного сложнее, чем у массива, потому что вектор строго типизирован. Поэтому везде, где вы имеете дело с вектором, нужно после обозначения типа и точки дополнительно в треугольных скобках указать тип хранимых в векторе значений. Например, String для вектора строк:


var stringVector : Vector.<String> = new Vector.<String>();


Когда я впервые использовал Vector, то сделал синтаксические ошибки в каждом случае его применения, по привычке работал как с нетипизированным массивом. Но с векторами нужен векторный синтаксис. В этом примере две ошибки:



public function findDuplicates(text : String) : Vector
{
var result : Vector = new Vector.<Duplicate>();
...
return result
}


Первая ошибка исправляется указанием полного типа вектора при объявлении переменной:


 var result: Vector.<Duplicate> = new Vector.<Duplicate>(); 


Вторая исправляется указанием полного типа вектора возвращаемого результата:


 public function findDuplicates(text : String) : Vector.<Duplicate>


(в примере <Duplicate> — это тип данных вектора, тут используется собственный класс, а на его месте можеть быть int, Date и т.д.)


Дочитали до этой фразы и стало скучно, используете вектор уже восемь-десять лет? Есть информация для продвинутых вектор-юзеров в ActionScript — динамическое создание экземпляров класса Vector и тест Array vs. Vector vs. Linked list.




Дочитали досюда? Круто *-)



Это как в выражении, "Магнитофон импортный, пиджак замшевый... " Смешные истории из жизни — это то, что никогда не знаешь, когда пригодится...

Комментариев нет:

Отправить комментарий