2
说我有以下散列:你怎么能方便地测试在Ruby中的散列平等,当你只关心相交的钥匙?
hash_x = {
:a => 1,
:b => 2
}
hash_y = {
:b => 2,
:c => 3
}
我需要一个逻辑块,它比较两个平等只考虑到交叉键。
在这个例子中“B”键是两个散列之间的唯一的通用性和它的值被设置为在两个“2”,所以通过逻辑这些两个散列将被认为是相等的。
同样这两个哈希值不等于由于“d”键的不等式(的“a”和“c”的密钥值被忽略,因为它们是唯一的,以它们各自的散列):
hash_p = {
:a => 1,
:b => 2,
:d => 3,
}
hash_q = {
:b => 2,
:c => 3,
:d => 4
}
有一个聪明的一行在Ruby中,可以计算出两个散列的交叉键然后根据这些键相等比较它们的值?
奖励积分,如果你提供的测试。
如果您将它修补到Hash类中,可获得更多奖励积分。
这是伟大的,但有一对夫妇的边缘情况下,我想处理,就像如果一个散列是nil,或者为空,或者如果值1等于“1”,或键:乙相匹配的键“b”。在这几天的煨事后,我会用单元测试发布我的解决方案。谢谢! – 2009-11-12 15:00:36
你的奖励积分在哪里?我认为你被扯掉了! :) – tadman 2009-11-12 15:22:50
@Teflon特德:你知道什么是更好的不仅仅是说明你有一定的优势的情况下?张贴他们,以便他们可以提供。你给出的两个例子如果从简单的一行到更复杂的事情。 – Pesto 2009-11-12 15:27:06