有人可以帮我缩短以下方法吗?我从这开始,我喜欢就好:有条件地包含键值对中的一个散列
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