Actions
Feature #20768
openAdd Hash#delete_at
Feature #20768:
Add Hash#delete_at
Status:
Open
Assignee:
-
Target version:
-
Description
Add Hash#delete_at to delete values from a list keyed by its arguments.
The interface and return values draw inspiration from Hash#values_at and Array#delete_at. It can pair nicely with multiple assignment to deconstruct a Hash instance:
hash = { a: true, b: false }
a, c = hash.delete_at(:a, :c) # => [ true, nil ]
hash # => { b: false }
Similar outcomes can be achieved with rightward assignment:
However, rightward assignment will raise an error when a key is missing, whereas Hash#delete_at could return nil or the Hash#default_value:
Similarly, rightward assignment does not mutate the original Hash instance. In some circumstances, this is beneficial. However, others that require mutation would involve re-assigning the variable:
Finally, a block can be passed in the same style as Hash#delete to provide a default value:
Updated by Eregon (Benoit Daloze) almost 2 years ago
Actions