我在ActionScript中最想念的一件事是缺少运算符重载,特别是==.我通过在我的类中添加"比较"方法来解决这个问题,但在许多情况下这没有用,例如当你想使用像内置字典这样的东西时.
有没有办法解决这个问题?
不.
但是equals
向自己的类添加方法并没有什么坏处.我尝试==
在比较对象时不会使用(同样适用===
于对象,因为它只检查身份).
遗憾的是,Flash和Flex中的所有集合都假设身份是衡量所需平等的唯一标准.
Flex中有一些提示,有人想要同时缓解这个问题,但似乎它已经被放弃了:有一个名为IUID的接口,它在Flex开发人员指南中提到过,但它并没有在任何地方使用.甚至连Flex中的集合都不会用它来确定相等性.既然你在寻求Flash的解决方案,那么无论如何它可能都没有帮助你.
我在我的博客上写了更多关于这一点(在Flex的上下文中):没有平等吗?.