在ActionScript中我最想错过的一件事是缺乏操作符重载,特别是==.我通过在我的类中
添加一个“比较”
方法来
解决这个问题,但是在许多情况下,就像当你想要使用内置的“字典”这样的东西时,这样做并不有帮助.
有没有办法解决这个问题?
不.
但是,不要在自己的类中添加equals方法.当我们比较对象时,我试图永远不要使用==(对于对象来说也是一样的===,因为它只是检查身份).
令人遗憾的是,Flash和Flex中的所有集合都假定身份是唯一需要的平等度量.
Flex中有一些提示有人想要同时减轻这个问题,但是它似乎被遗弃了:有一个名为IUID的接口,它在Flex开发人员指南中提到,但它并没有在任何地方使用.即使Flex中的集合也不能使用它来确定平等.而且,由于您正在为Flash寻求解决方案,所以可能还没有帮助您.
我在博客:Is there no equality?上写了一些关于这个(在Flex的上下文中).