代码之家  ›  专栏  ›  技术社区  ›  Mr. Boy

对象是AS3中首选的关联容器吗?

  •  3
  • Mr. Boy  · 技术社区  · 15 年前

    由于AS3/flex在这方面似乎非常有限,所以我一直使用对象作为一种拥有通用关联数组(map/dictionary)的方法。但我真的不喜欢它来自C++/爪哇C/C背景。有没有更好的方法,一些我没有遇到的标准课程…在AS3中,这是否被认为是好的/坏的?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Alan Geleynse buhbang    15 年前

    是,ActionScript使用 Object 作为一个通用的关联容器,被认为是实现这一点的标准方法。

    还有一个 Dictionary 课程可用, flash.utils.Dictionary .

    区别在于 词典 可以使用任何值作为键,包括对象,而 对象 使用字符串键。对于大多数用途, 对象 因为它速度更快并且覆盖了大多数用例,所以是首选的。

    您可以在 对象 在这里: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.html 词典 在这里: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Dictionary.html 它们之间的区别是: http://livedocs.adobe.com/flex/3/html/help.html?content=10_Lists_of_data_4.html

        2
  •  2
  •   Community Mohan Dere    9 年前

    恐怕没有 本地的 替代 Object Dictionary 用于地图和其他结构。至于 标准 好吧,这取决于如何定义标准,但是如果你寻找Java风格的集合,你可能会想知道两个已知的库。

    像这样:

    http://sibirjak.com/blog/collections/as3commons-collections/

    另外,您可以看看这个问题,它有到几个DS库(包括上面的库)的链接。

    Collections in Adobe Flex

    我不会说使用对象是好的或坏的做法。在 一般情况 它们比任何ActionScript选项都快(因为它们是本地的),但功能较少。有时所提供的功能已经足够好了。有时候,它有点简明扼要,所以一些更结构化的东西可以帮助您摆脱代码中较低级别的细节,并专注于“域逻辑”,可以这么说。

    最后,所有这些库都通过对象、字典和数组(或向量)实现其数据结构。所以,如果本地对象可以满足您的需求,那么我建议您使用它们。另一方面,如果你发现自己基本上是在重写,比如说,一个特别的集合,使用这些libs中的一个可能是一个明智的选择。

    推荐文章