我在 Ruby 中有一个哈希:
hash = Hash.new
里面有一些键值对,比如说:
hash[1] = "One"
hash[2] = "Two"
如果散列包含键 2
,那么我想将“Bananas”添加到它的值中。如果散列没有键 2
,我想创建一个新的键值对 2=>"Bananas"
。
我知道我可以通过首先使用 has_key?
检查散列是否具有 key 2
来做到这一点,然后采取相应的行动。但这需要一个 if
语句和不止一行。
那么是否有一种简单、优雅的单行代码可以实现这一目标?
最佳答案
这个有效:
hash[2] = (hash[2] || '') + 'Bananas'
如果您希望所有键都以这种方式运行,您可以使用 Ruby 的 Hash 的“默认”功能:
hash = {}
hash.default_proc = proc { '' }
hash[2] += 'Bananas'
关于ruby - 如果键存在,向散列值添加一些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614169/