将多个值添加到 Ruby 中的一个键以及只删除一个关联的值

Adding multiple values to a key in Ruby as well as delete just one value associated

我想向散列中添加值和删除值,如下所示

h= {:a =>[ 1,3, 4],
    :b =>[ 3, 6],
    :c =>[ 4, 8, 87]
   }

以及如何只删除与键相关的一个值? 删除 c, 87

h= {:a =>[ 1,3, 4],
    :b =>[ 3, 6],
    :c =>[ 4, 8]
   }

我可以在 ruby 中执行此操作吗?我是 ruby 的新手,有人可以帮助我吗?

使用 Nil Guard

您需要防止哈希中丢失键和值。有很多方法可以做到这一点,但在任何最近的 Ruby 上, &. 运算符确保如果在 nil 上调用方法不会引发异常。以下工作正常:

h = {
  a: [1, 3, 4],
  b: [3, 6],
  c: [4, 8, 87]
}

h[:c]&.delete 87; h
#=> {:a=>[1, 3, 4], :b=>[3, 6], :c=>[4, 8]}

h[:x]&.delete 101; h
#=> {:a=>[1, 3, 4], :b=>[3, 6], :c=>[4, 8]}