2014-03-04 35 views
0

我想與行的代碼#真正有效,所以我想下面的代碼兩行合併:Ruby如何將元素添加到元素來散列,返回散列?

my_hash["X"] = value 
my_hash 

如果我拿出的第二行,然後我的函數將返回錯誤的事情因爲它只會返回散列的一個元素。有什麼方法可以將元素添加到將返回整個散列的散列?提前致謝!

回答

3

做如下使用merge!

my_hash.merge!("X" => value) 
+1

可以省略括號。 – sawa

+1

不是括號。大括號。 – sawa

+0

是的,Ruby會把它當作哈希..好點.. :-) –

1

tap將產生對象塊,然後返回它:

my_hash.tap { |h| h['X'] = value } 

注意,減小的代碼行減少的代碼行的目的不僅降低了目的的可讀性和清晰度,它很少改善了代碼質量。

1
my_hash.merge!({ 'X' => value }) 
+1

@ArupRakshit其實只有11個,但是誰在計數:) – Matt

+0

沒有...讓我們一起走.. ..-) –

+0

只是不要跳過在一起,牽着手。答案並不好。 –