我有一个我在smalltalk中创建的对象字典,我通过基于键/值对枚举来迭代它.
对于字典中的value对象,我在该对象上调用一个方法.基于某些条件,我希望此对象能够将新成员添加到字典中,并可能删除另一个成员.
我一直在关注Smalltalk中的'Perform'和'Messages'设施,但我不确定是否有可能做我正在尝试做的事情 - 是否可以返回消息(或多条消息) ),另一个对象可以处理和执行?
例如,我的方法可以同时返回'removeKey:19'和'添加对象'吗?
我正在使用GNU Smalltalk,如果重要的话.
迭代集合时,将集合作为参数的一部分传递:
aCollection copy do: [:each | each doSomethingOn: aCollection]
Run Code Online (Sandbox Code Playgroud)
该副本确保#doSomethingOn:可以更改原始集合而不会弄乱迭代.