Ruby 中“删除”的不可变替代方案
Immutable alternative to `delete` in Ruby
有没有Hash#delete
版本如下:
hash = {a: 1}
hash.delete(:a) # => 1
hash # => {}
那个 returns 没有 :a
的散列,没有改变原始散列以使其具有原始值?
使用Hash#reject.
hash.reject { |k,_| k == :a }
#=> {}
hash
#=> {:a=>1}
这当然不依赖于具有单个键值对的散列。
有没有Hash#delete
版本如下:
hash = {a: 1}
hash.delete(:a) # => 1
hash # => {}
那个 returns 没有 :a
的散列,没有改变原始散列以使其具有原始值?
使用Hash#reject.
hash.reject { |k,_| k == :a }
#=> {}
hash
#=> {:a=>1}
这当然不依赖于具有单个键值对的散列。