Как бы вы внедрили дженерики, такие как Vector. <T>? - PullRequest
5 голосов
/ 01 ноября 2010

Итак, в ActionScript 3 есть дженерики с классом Vector (Vector.). Я не видел ни одного другого класса, который бы использовал подобные дженерики.

Если бы вы реализовали Vector. себя, как бы ты это сделал?

Ответы [ 4 ]

3 голосов
/ 02 ноября 2010

Если вы ищете дженерики, лучше всего посмотреть на Haxe .Он очень похож на ActionScript 3 и компилируется в swc или swf.

1 голос
/ 01 октября 2012

Возвращаясь к haxe посту выше ... вы можете создать дженерики в haxe и затем скомпилировать код в as3.Не пытался это недавно, чтобы увидеть, как это обрабатывается, но .. http://haxe.org/doc/flash/as3gen

0 голосов
/ 14 декабря 2012

AS3 не поддерживает стандартное объявление класса. Здесь хорошая дискуссия здесь

0 голосов
/ 01 ноября 2010

Ну, вы могли бы сделать класс, который принимает тип T в качестве параметра, что-то вроде этого Foo (тип: *)

И затем во всех методах, из которых вы можете добавлять элементы в класс Vector, я возбуждаю исключение, если тип объекта, передаваемого методу, не совпадает с типом, который я определил, когда создавал свой векторный класс.

При этом, вероятно, вы не получите очень хорошую производительность от такого класса, поскольку каждый раз, когда вы обрабатываете объект, вам нужно проверять его реальный тип во время выполнения, где, как в C ++, классы шаблонов создаются во время компиляции, поэтому проверка типа во время выполнения не требуется.

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