我正在使用 Pharo 4。假设我的对象已经实现了很好的相等和散列方法。
如何在不同的检查员中直观地比较两个或 N 个对象?
视觉上我的意思是并排比较,我可以很容易地看到差异。
我尝试了 allInstances 但一段时间后变得乏味。
最佳答案
您可能会通过查看您在做 GLMBasicExamples open
时可以选择的差异浏览器而获得启发。 .使用 Glamour,您可以轻松创建自定义浏览器来帮助您解决此问题。 diff 示例本身是 15 行代码:
| browser |
browser := GLMTabulator new.
browser
row: [:r | r column: #one; column: #two];
row: #diff.
browser transmit to: #one; andShow: [ :a |
a list
display: #first ].
browser transmit to: #two; andShow: [ :a |
a list
display: #second ].
browser transmit to: #diff; from: #one; from: #two; andShow: [ :a |
a diff
display: [ :one :two | {one asString . two asString}] ].
browser openOn: #(#(abc def ghi) #(abc xyz))
魅力的差异 View 使用 DiffMorph 来显示差异。它需要两个对象的字符串表示来比较
关于reflection - Pharo:如何比较不同检查员的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529801/