我知道之前曾以某种形式提出过这个问题,但我特意想把它用于Strings,以及比.include更快的东西。
我想在有序的字符串列表中使用它(按字母顺序排列)。
答案 0 :(得分:5)
找到最近的(在一个方向上)
array = ["aardvark", "amazon", "binary", "zelda"]
array.bsearch { |s| s >= "binary" }
# => "binary"
array.bsearch { |s| s >= "binaries" }
# => "binary"
要找到完全匹配,
array.bsearch { |s| "binary" <=> s }
# => "binary"
array.bsearch { |s| "binaries" <=> s }
# => nil
这是Array
功能,与字符串无关;你可以bsearch
找到你可以实现比较器的任何东西,只要数组被相应地排序。