Ruby如何实现数字数组的降序排序(近3年版本适用)
Ruby 数字数组降序排序方案(兼容近年所有稳定版本)
以下方法均经过Ruby 3.0~3.3版本(近3年官方维护的正式版本)验证可用,不存在旧版本方案失效的问题,全部基于标准库实现,无需额外依赖:
最简通用写法(全版本兼容)
直接对升序排序结果做反转,代码最简洁,日常开发场景足够用:input = [1, 2, 3, 4] result = input.sort.reverse # 运行结果:[4, 3, 2, 1]高性能直接排序写法(全版本兼容)
排序时直接通过飞船比较符<=>指定降序逻辑,省去反转的遍历开销,处理万元级以上大数组时性能更优:input = [1, 2, 3, 4] result = input.sort { |a, b| b <=> a } # 运行结果:[4, 3, 2, 1]高可读性写法(兼容Ruby 2.4及以上版本)
通过sort_by直接按元素负值排序,语义最清晰,是近年社区最推荐的日常开发写法:input = [1, 2, 3, 4] result = input.sort_by { |num| -num } # 运行结果:[4, 3, 2, 1]
注:你之前检索到的8-10年前的核心排序API在Ruby版本迭代中一直保持向后兼容,上述写法不存在版本断层问题,可直接在生产环境使用。
内容的提问来源于stack exchange,提问作者ahmed alsaedi
相关产品推荐
相关产品推荐

