the difference: Array[] and Array.fetch [via comp]

xiaoxiao2026-10-03  10

array = ["a","b","c"] # => ["a", "b", "c"] array[1] # => "b" array.fetch 1 # => "b" # ================================================== # # So far, so fine. # ================================================== # array[666] # => nil array.fetch 666 IndexError: index 666 out of array from (irb):5:in `fetch' from (irb):5 This may seem like a trival difference between the two, but I am wondering in general why they behave differently. Or in other words, why array[] does not return an error whereas .fetch specifically does. You might say that's the purpose of fetch, to raise an exception for out-of-bounds indexes when [] just returns nil. Pick the method you want depending on the error handling you want. fetch is more general; if you want it to behave like []() in this case, say array.fetch(666,nil) PS:也可以指定fetch返回其他值
转载请注明原文地址: https://www.6miu.com/read-5053558.html

最新回复(0)