加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 使用<=>而不仅仅是排序和反转是否有好处?

发布时间:2020-12-17 01:47:44 所属栏目:百科 来源:网络整理
导读:这样做有什么好处(如果有的话): books.sort! {| firstBook,secondBook | secondBook = firstBook} 与: books.sort!.reverse! 第二个选项似乎更清晰,更容易理解.. 编辑:我想这可能是一个问题, =的其他用途是什么?除1对1排序以外的操作符? 解决方法 关
这样做有什么好处(如果有的话):

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

与:

books.sort!.reverse!

第二个选项似乎更清晰,更容易理解..

编辑:我想这可能是一个问题,< =>的其他用途是什么?除1对1排序以外的操作符?

解决方法

关于性能问题的初步答案已经证明主要基于一个不正确的假设:sort.reverse没有固有的性能影响,因为没有块的排序似乎比使用块排序更快,所以它抵消了第二次反向呼叫的成本,可以忽略不计.

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

原始答案如下:

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

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

显然你必须问自己:“这段代码每秒运行多少次?”或者“此代码在应用程序的生命周期内运行一次吗?”并且您的优先级会相应地发生变化,但通常,可维护性会超过性能.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读