Чтобы добавить новую пару в Hash, я делаю:
{:a => 1, :b => 2}.merge!({:c => 3}) #=> {:a => 1, :b => 2, :c => 3}
Есть ли аналогичный способ удаления ключа из Hash?
Это работает:
{:a => 1, :b => 2}.reject! { |k| k == :a } #=> {:b => 2}
но я бы ожидал что-то вроде:
{:a => 1, :b => 2}.delete!(:a) #=> {:b => 2}
Важно, чтобы возвращаемое значение было оставшимся хешем, поэтому я мог бы сделать что-то вроде:
foo(my_hash.reject! { |k| k == my_key })
в одну строку.