为什么关联在 Smalltalk 中是重要的?

Why Associations are Magnitudes in Smalltalk?

我还没有检查很多方言(在 Pharo AssociationLookupKey 的子类,LookupKeyMagnitude 的子类)但我认为这很常见。

这个定义是不是违反直觉? Associations 通常参与无序集合,我不认为 Smalltalker 会考虑到他们的 keys 可以被发送 #<=。我想知道的是,这是否是我们从 Smalltalk 的旧实现中继承的东西,从不费心去挑战,或者只是我遗漏了什么。底线:有人用过这个功能吗?

我认为 Dictionary 不需要它;它所需要的只是 = 和散列。

但是,您经常希望获取关联列表并在以后对它们进行排序(例如,将它们显示在某个排序列表中)。然后,很高兴已经定义了一个订单。

并且成本只是 Association(或 LookupKey,如果它是超类)中的一个“<”方法,因此通过继承 Magnitude 而不是 Object 几乎是免费的。