将多个值添加到 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]}
我想向散列中添加值和删除值,如下所示
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]}