Skip to content

Instantly share code, notes, and snippets.

@JosimarCamargo
Forked from stevenharman/defaults.rb
Created September 5, 2018 18:16
Show Gist options
  • Save JosimarCamargo/1ba3372f80137e8843565de7dba54ca6 to your computer and use it in GitHub Desktop.
Save JosimarCamargo/1ba3372f80137e8843565de7dba54ca6 to your computer and use it in GitHub Desktop.
A subtle difference between Ruby's Hash.fetch(:key, :default) vs. (Hash[:key] || :default)
h = {
'a' => :a_value,
'b' => nil,
'c' => false
}
h.fetch('a', :default_value) #=> :a_value
h.fetch('b', :default_value) #=> nil
h.fetch('c', :default_value) #=> false
h.fetch('d', :default_value) #=> :default_value
(h['a'] || :default_value) #=> :a_value
(h['b'] || :default_value) #=> :default_value
(h['c'] || :default_value) #=> :default_value
(h['d'] || :default_value) #=> :default_value
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment