I am not sure in what situation I would want to use Hash#fetch
over Hash#[]
. Is there a common scenario in where it would be of good use?
Hash functions and their associated hash tables are used in data storage and retrieval applications to access data in a small and nearly constant time per retrieval. They require an amount of storage space only fractionally greater than the total space required for the data or records themselves.
Common attacks like brute force attacks can take years or even decades to crack the hash digest, so SHA-2 is considered the most secure hash algorithm.
Three main uses:
When the value is mandatory, i.e. there is no default:
options.fetch(:repeat).times{...}
You get a nice error message too:
key not found: :repeat
When the value can be nil
or false
and the default is something else:
if (doit = options.fetch(:repeat, 1)) doit.times{...} else # options[:repeat] is set to nil or false, do something else maybe end
When you don't want to use the default
/default_proc
of a hash:
options = Hash.new(42) options[:foo] || :default # => 42 options.fetch(:foo, :default) # => :default
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With