缺少ActionScript 3.0中的运算符重载
时间:2020-03-05 18:49:44 来源:igfitidea点击:
我在ActionScript中最想念的一件事是缺少运算符重载,特别是==。我通过在类中添加"比较"方法来解决此问题,但这在许多情况下无济于事,例如当我们要使用内置词典等功能时。
有解决此问题的好方法吗?
解决方案
回答
没有。
但是,将"等于"方法添加到我们自己的类中并没有什么坏处。我尝试在比较对象时从不使用==
(===
也是一样,对于对象也是一样),因为它仅检查identity。
可悲的是,Flash和Flex中的所有集合都假定身份是唯一需要的平等度量。
Flex中有暗示,有人想一次缓解此问题,但似乎已被放弃:有一个名为IUID的接口,在《 Flex开发人员指南》中有所提及,但并未在任何地方使用。 Flex中的集合甚至都不使用它来确定相等性。而且,由于我们要的是Flash解决方案,因此它可能仍无济于事。
我已经在我的博客上(在Flex的背景下)写了更多有关此的东西:没有平等吗?