【发布时间】:2015-12-20 14:23:45
【问题描述】:
我有以下代码来创建一个作为类成员的集合:
CustomClass new members:Set new; yourself.
接下来我问尺寸
custom members size.
这显然是 0,但是当我在集合中插入一个自定义元素并询问大小时,它会导致一个错误,告诉我我的自定义元素不可索引。
custom members add: MyCustomElement new.
custom members size. -> error
这是为什么?如何在 Smalltalk 中解决这个问题?提前致谢
【问题讨论】:
-
你能给我们你的
MyCustomElement的定义吗?特别是,你实现了#=和#hash吗? -
您能否发布 exact 错误描述?例如。哪个类不可索引?
-
@Tobias #= 和 #hash 是什么?
-
#=和#hash是每个对象都实现的方法。如果您覆盖#=,您通常还必须覆盖#hash,因为基于散列的集合是如何工作的。散列集合上的#size可以使用#hash进行查找。这就是 Tobias 询问他们的实施的原因。如果您仍能提供我们要求的信息会很有帮助,因为您所描述的情况不应该在这种简单的情况下发生。 -
你得到的错误文本是什么?
标签: collections smalltalk pharo