Ruby中{delete}替换为`delete`

时间:2018-04-22 23:01:29

标签: ruby immutability

是否有Hash#delete的版本如下:

hash = {a: 1}
hash.delete(:a) # => 1
hash # => {}

返回没有:a的哈希值,而不改变原始哈希值以使其具有原始值?

1 个答案:

答案 0 :(得分:3)

使用Hash#reject

hash.reject { |k,_| k == :a }
  #=> {}
hash
  #=> {:a=>1}

这当然不依赖于具有单个键值对的散列。