为什么关联在 Smalltalk 中是重要的?
Why Associations are Magnitudes in Smalltalk?
我还没有检查很多方言(在 Pharo Association
是 LookupKey
的子类,LookupKey
是 Magnitude
的子类)但我认为这很常见。
这个定义是不是违反直觉? Associations
通常参与无序集合,我不认为 Smalltalker 会考虑到他们的 keys
可以被发送 #<=
。我想知道的是,这是否是我们从 Smalltalk 的旧实现中继承的东西,从不费心去挑战,或者只是我遗漏了什么。底线:有人用过这个功能吗?
我认为 Dictionary 不需要它;它所需要的只是 = 和散列。
但是,您经常希望获取关联列表并在以后对它们进行排序(例如,将它们显示在某个排序列表中)。然后,很高兴已经定义了一个订单。
并且成本只是 Association(或 LookupKey,如果它是超类)中的一个“<”方法,因此通过继承 Magnitude 而不是 Object 几乎是免费的。
我还没有检查很多方言(在 Pharo Association
是 LookupKey
的子类,LookupKey
是 Magnitude
的子类)但我认为这很常见。
这个定义是不是违反直觉? Associations
通常参与无序集合,我不认为 Smalltalker 会考虑到他们的 keys
可以被发送 #<=
。我想知道的是,这是否是我们从 Smalltalk 的旧实现中继承的东西,从不费心去挑战,或者只是我遗漏了什么。底线:有人用过这个功能吗?
我认为 Dictionary 不需要它;它所需要的只是 = 和散列。
但是,您经常希望获取关联列表并在以后对它们进行排序(例如,将它们显示在某个排序列表中)。然后,很高兴已经定义了一个订单。
并且成本只是 Association(或 LookupKey,如果它是超类)中的一个“<”方法,因此通过继承 Magnitude 而不是 Object 几乎是免费的。