【发布时间】:2014-05-02 02:11:10
【问题描述】:
我在 Ruby 中有一个哈希:
hash = Hash.new
里面有一些键值对,比如:
hash[1] = "One"
hash[2] = "Two"
如果哈希包含一个键2,那么我想将“香蕉”添加到它的值中。如果哈希没有键2,我想创建一个新的键值对2=>"Bananas"。
我知道我可以通过首先使用 has_key? 检查哈希是否具有键 2 然后采取相应措施来做到这一点。但这需要if 语句和不止一行。
那么有没有一种简单、优雅的单线来实现这一点?
【问题讨论】:
-
你写了什么代码来解决这个问题?
-
一些关于编码的理解:编写只需要一行的代码不是目标。目标是编写“优雅”的代码,这意味着可以理解和强大,而不一定是“简洁”。一个简单的条件和两三行修改是非常好的,如果它是可读的并完成你所需要的。您会发现编程世界充满了您所要求的内容的三行版本,仅仅是因为它可读且同样快速。
-
Ruby 允许使用分号而不是换行符。您可以将 everything 写在一行中,只需用分号替换换行符即可。问题解决了。