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