有人可以幫我縮短以下方法嗎?我從這開始,我喜歡就好:有條件地包含鍵值對中的一個散列
def self.some_hash
{ "foo" => "bar" }
end
現在我想添加一個可選的密鑰。我能想到的tersest語法是這樣的:
def self.some_hash(some_key=nil)
answer = { "foo" => "bar" }
answer[some_key] = "yucky, long-winded syntax" if some_key
answer
end
修改的方法可行,但我不滿意虛擬墨水的浪費。有沒有辦法縮短它?我意識到可以在散列字面上使用三元操作符,但是這會迫使(我認爲)在條件的每個分支上重複一對,這也比原始的略差。
「幫我縮短以下方法」是一種放棄這應該在codereview.stackexchange.com上進行評論並幫助重構和優化。 –
很遺憾看到這個問題關閉,當它確實問到「我如何有條件地在密鑰/值對中包含哈希?」。我使用[Ruby 2.0的double-splat操作符](http://stackoverflow.com/a/37474217/122087)在其他地方寫了一個答案。 –
@PaulAJungwirth,我想它已經關閉了,因爲我只想提高工作代碼。我可能會修改一些垃圾語法,然後說它不起作用,並且一切都會很好。這是關於**運營商的偉大提示!謝謝<---不鼓勵>在評論中的感謝是另一種愚蠢的,規範在這裏,但 - >謝謝! – danh