我不明白为什么当数组有 2 个值时 bsearch 方法返回 nil。
arr = [1, 2]
arr.bsearch { |el| el < 2 }
有很好的解释 https://jemma.dev/blog/array-bsearch
对于您的情况,可以有 2 种解决方案
arr = [2, 1]
arr.bsearch { |el| el < 2 }
或
arr = [1, 2]
arr.bsearch { |el| el <=> 2 }
看来以后我会更喜欢使用简单的
find
方法