要将新对添加到哈希,我需要:
{:a=>;1,:b=>;2}。合并!({:c=>;3})#=>;{:a=>;1,:b=>;2,:c=>;3}
有没有类似的方法从散列中删除密钥
这项工作:
{:a=>;1,:b=>;2}。拒绝!{| k | k==:a}#=>;{:b=>;2}
但我希望有这样的东西:
{:a=>;1,:b=>;2}。删除!(:a);{:b=>;2}
重要的是,返回值将是剩余的散列,因此我可以执行以下操作:
foo(my|u hash.reject!{k | k==my_key})
排成一行
Rails有一个except/except!方法返回已删除这些键的哈希值。如果您已经在使用Rails,那么创建自己的版本是没有意义的
类哈希
#返回一个散列,该散列包含除给定键以外的所有内容。
#hash={a:true,b:false,c:nil}
#除(:c)#=>;{a:true,b:false}
#散列#=>;{a:true,b:false,c:nil}
#
#这对于将一组参数限制为除少数已知切换之外的所有参数非常有用:
#@person.update(参数[:person]。除了(:admin))
def(除(*键外)
重复,除了!(*钥匙)
终止
#替换没有给定键的哈希。
#hash={a:true,b:false,c:nil}
#哈什,除了!(:c)#=>;{a:true,b:false}
#散列#=>;{a:true,b:false}
除此之外!(*钥匙)
keys.each{| key | delete(key)}
自己
终止
终止