Smalltalk 为什么在闲聊中联想是数量级?

Smalltalk 为什么在闲聊中联想是数量级?,smalltalk,Smalltalk,我还没有检查过很多方言(在Pharo中,Association是LookupKey的一个子类,它是量级的一个子类),但我认为这是相当常见的 这个定义不是违反直觉吗协会通常参与无序的收集,我不认为一个小人会考虑他们的键可以被发送。我认为字典不需要这样;它只需要=和散列 但是,您通常希望获得关联列表并在以后对其进行排序(例如,在一些排序的列表中显示它们)。然后,很高兴已经定义了订单 成本只是一个“有趣的问题。GNU Smalltalk有着相同的结构,我以前没有注意到。我以前使用过关联对象,但没有利用

我还没有检查过很多方言(在Pharo
中,Association
LookupKey
的一个子类,它是
量级的一个子类),但我认为这是相当常见的


这个定义不是违反直觉吗<代码>协会通常参与无序的收集,我不认为一个小人会考虑他们的
键可以被发送
。我认为字典不需要这样;它只需要=和散列

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


成本只是一个“有趣的问题。GNU Smalltalk有着相同的结构,我以前没有注意到。我以前使用过
关联
对象,但没有利用它们的传统作为
量级
。也许
关联
量级
-ness在其他对象内部使用(如
字典
),但我还没有查看源代码来验证这一点。这是我目前所知道的全部。这个层次结构肯定已经存在于st80中。@aka.nice在一次公认的快速搜索中,我在蓝皮书中找不到关于这个决定的任何信息。蓝皮书中也以这种方式显示了层次结构,但正如您所说,它并没有解释为什么查找键这是一个数量级。在数量级的讨论中,它说,
LookupKey
不太有趣,被推迟到集合一章中需要的时候。这让我咯咯地笑了。集合部分只提到了与键检查相同的等式。没有提到其他比较操作。我在GNU Smalltalk中浏览了源代码并且无法直接在查找键或关联上找到任何相对大小检查。我希望键是可排序的。在另一种语言(Delphi)中,我使用它创建了集合类型,以创建一个非常快速且内存高效的存储系统。