Fetch
取不到值時,會以預設值取代,但沒設定預設值會出現 Error
Hash / Array 皆有實作 #fetch
- Array#fetch
a = [ 11, 22, 33, 44 ]
a.fetch(1) #=> 22
a.fetch(-1) #=> 44
a.fetch(4, 'cat') #=> "cat"
a.fetch(4) { |i| i*i } #=> 16
a.fetch(5) #=> IndexError
- Hash#fetch
h = { "a" => 100, "b" => 200 }
h.fetch("a") #=> 100
h.fetch("z", "go fish") #=> "go fish"
h.fetch("z") { |el| "go fish, #{el}"} #=> "go fish, z"
h.fetch("z") #=> KeyError
Dig
適用在多層
跟 #try 一樣,如果其中一層為 nil,會回傳 nil 而不會出現 Error
Ruby 2.3.0
Hash / Array 皆