所以在 actionscript 3 中,Object 类的实例可以用作关联数组:
var doNotHaveSexWith:Object = new Object();
doNotHaveSexWith['mum'] = new Person(...);
doNotHaveSexWith['dad'] = new Person(...);
doNotHaveSexWith['dave'] = new Person(...);
假设我有一些课程,其中一个成员是一个只读的“对象”,其中包含我的人员集合。
我认为如果我返回这个“对象”,代码可读性会受到重大影响,因为程序员怎么知道如何处理它?有人知道它是一个集合的唯一方法是他们阅读代码或评论......
表明一个对象是一个集合而不是一个简单对象的最佳方式是什么?
选项:
创建一个动态类,简单地从 Object 扩展,称为“AssociativeArray”或其他东西,这样代码变得更具可读性......
使用像AS3 Datastructures Library这样的东西,虽然这看起来有点矫枉过正。
只需将单词 Collection 附加到变量名的末尾?
例如:
var hotPeopleCollection:Object = new Object();
hotPeopleCollection['me'] = new Person(...);
hotPeopleCollection['sandrasully'] = new Person(...);
你怎么看?
更新:我决定使用扩展字典的自定义类。这样我可以在搜索函数周围包装一个合理的访问函数:hasOwnProperty并给类一个有意义的名称。
我选择 Dictionary over Object 的原因有两个:
- 字典对集合更直观
- 字典似乎在 O(1) 处执行搜索。请参阅这个相当非正式的字典 vs 数组 vs 对象性能基准