假设我想按降序排序Ruby中的字符串数组。例如:
books = ["Charlie and the Chocolate Factory", "War and Peace", "Utopia", "A Brief History of Time", "A Wrinkle in Time"]
我目前正在通过Code Academy的Ruby课程,他们说使用以下代码来实现这一目标:
books.sort! { |firstBook, secondBook| secondBook <=> firstBook }
但是,这也不能通过简单地写下来来完成吗?
books.sort!.reverse
他们都在Code Academy课程中产生了相同的结果,但我想知道两者之间是否存在差异。
答案 0 :(得分:4)
两者之间存在轻微的性能差异
这只是排序的一步
books.sort! { |firstBook, secondBook| secondBook <=> firstBook }
这个实际上包含两个步骤:排序和反向
books.sort!.reverse
因此,当数据很大时,首选的是第一个。但是,在正常情况下,第二个会更容易编写,而性能上的细微差别并不重要。
答案 1 :(得分:1)
我认为该教程只是试图帮助您理解&lt; =&gt; (太空飞船运营商)以及排序如何受变量顺序的影响。 books.sort!.reverse是你会更常用的东西。
答案 2 :(得分:0)
尝试使用以下选项:
1. books.sort!{ |firstBook, secondBook| secondBook <=> firstBook }
2. books.sort{ |firstBook, secondBook| firstBook <=> secondBook }
3. books.sort_by{ |Book| Book}.reverse