为什么我会收到此警告及其含义?
a = [1,3,5]
a.fetch(0) #=> 1
a.fetch(0,0) #=> 1
a.fetch(22) { "out of range" } #=> out of range
a.fetch(0,0) { "out of range" } #=> returns 1 with warning: block supersedes default value argument
您正在为fetch
in提供两个默认值a.fetch(0,0) { "out of range" }
0
个fetch(0,0)
。警告告诉您块的返回值用作默认值,而不是您提供的默认值。
Array#fetch最多接受 2 个参数。
- 获取(索引)→ obj
- fetch(index, default) → obj # <-----
- 获取(索引){ |索引| 块 } → 对象
你传递的论点比最后一句要多。