gpt4 book ai didi

ruby - 使用 <=> 而不仅仅是排序和反转有什么好处吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:30 25 4
gpt4 key购买 nike

这样做有什么好处(如果有的话):

books.sort! { |firstBook, secondBook| secondBook <=> firstBook }

对比:

books.sort!.reverse!

第二个选项看起来更简洁、更容易理解..

编辑:我想这可能是一个问题,除了 1 对 1 排序之外,<=> 运算符还有哪些其他用途?

最佳答案

事实证明,我最初对性能问题的回答很大程度上是基于一个错误的假设:sort.reverse 没有固有的性能影响,因为 sort 没有 block 似乎比 sort with 一个 block 快得多,以至于它抵消了第二次 reverse 调用的成本,这是可以忽略不计的。

但是,我的回答的要点仍然有效:您应该选择第二行,因为它更具可读性,并且担心在发现性能问题时找出哪个选项更快。


原回答如下:

第二种选择更昂贵。它按升序对所有内容进行排序,然后反转数组,这是两个不同的过程,而第一个选项会立即按降序生成数组。

也就是说,第二种选择是我更喜欢的。通常,宁愿生成可读、可维护的代码,也不愿过早地优化性能。

显然您必须问自己:“这段代码每秒运行多次吗?”或“此代码在应用程序的生命周期内运行一次吗?”并且您的优先级会相应改变,但一般来说,可维护性胜过性能。

使用第二个选项,直到您可以证明它是一个性能瓶颈。

关于ruby - 使用 <=> 而不仅仅是排序和反转有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com