我在下面提供了测试用例,这只是一个激发我好奇心的问题。
ruby 文档Array#bsearch
说:
“此方法返回第 i 个元素。如果 i 等于 ary.size,则返回 nil。”
这个解释还没有在我的脑海中点击。有人可以更深入地解释一下吗?
def greater_than_8(ary)
a = ary.bsearch { |x| x.to_f > 8 }
a.nil? || a.to_f < 8 ? "No number greater than 8" : a
end
ary = [0, 4, 7, 10, 12]
puts greater_than_8(ary)
#=> 10
# Shouldn't this return 14?
ary = [14, 3, 7]
puts greater_than_8(ary)
#=> "No number greater than 8"
# THERE IT IS!
ary = [14, 13, 7]
puts greater_than_8(ary)
#=> 14
ary = [8, 8, 8, 8]
puts greater_than_8(ary)
#=> "No number greater than 8"
ary = [8.01, 123]
puts greater_than_8(ary)
#=> 8.01
ary = ["one hundred", "151", "120", 9]
puts greater_than_8(ary)
#=> 151