TypedDictionary вместо Dictionary

Портируя одну библиотеку с AS3 на haXe, пришел к выводу, что в последнем вместо класса flash.utils.Dictionary стоит использовать flash.utils.TypedDictionary, в первую очередь из-за того, что в haXe только типизированный словарь реализует Iterator, т.е. его элементы можно перебрать в цикле типа for (i in dict).

отличаться будут объявление и создание экземпляра. примерно так:

var dict :TypedDictionary<Dynamic, Dynamic> ; // объявление
dict = new TypedDictionary<Dynamic, Dynamic>(true); // создание

если компилятор будет ругаться, что словарю нужен Int ( ... should be Int ) при присвоении, можно обойти это, используя cast:
dict[cast myObject] = ... ;

полезные ссылки по теме:
- старенькая статья Гранта Скиннера про Dictionary в AS3
- топик про перебор Dictionary на форуме haxe.org
- выдержка из листа рассылки по теме
- документация класса TypedDictionary

Комментарии

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

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Use [gist:####] where #### is your gist number to embed the gist.

Подробнее о форматировании

CAPTCHA
Для отсева спамеров)
h
w
y
V
D
q
Enter the code without spaces and pay attention to upper/lower case.