如何将Smalltalk中的两个字典与oneliner合并?
可能存在特定于方言的方式,或者可能存在通用方式。我有两本字典,让我们说:
a := {'a' -> 1} asDictionary.
b := {'b' -> 2} asDictionary.
现在我想c成为aand的联合b。
回答
这取决于您是想要第三个对象还是更喜欢包含,例如b, into a。
对于第一种情况
c := Dictionary new.
a keysAndValuesDo: [:k :v | c at: k put: v].
b keysAndValuesDo: [:k :v | c at: k put: v].
对于第二
b keysAndValuesDo: [:k :v | a at: k put: v].
另请注意,该操作不是可交换的,这意味着如果两个字典中出现相同的键,则在结果中存活的键是最后添加的键。