簡體   English   中英

以降序對字符串數組進行排序

[英]Sort an array of string in descending order

假設我想按降序對Ruby中的字符串數組進行排序。 因此,例如:

books = ["Charlie and the Chocolate Factory", "War and Peace", "Utopia", "A Brief History of Time", "A Wrinkle in Time"]

我目前正在學習代碼學院的Ruby課程,他們說要使用以下代碼來實現這一目標:

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

但是,僅通過編寫以下代碼也不能做到這一點嗎?

books.sort!.reverse

它們在Code Academy課上都產生相同的結果,但是我想知道兩者之間是否有什么區別。

兩者之間的性能差異很小

這只是一個步驟

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

這實際上包含兩個步驟:排序和反向

books.sort!.reverse

因此,當數據較大時,首選第一個。 但是,在通常情況下,第二個腳本編寫起來會更簡單,並且性能上的細微差別並不重要。

我認為該教程只是試圖幫助您了解<=>(太空飛船操作員)以及排序如何受到變量順序的影響。 books.sort!.reverse是您更常使用的東西。

嘗試以下選項:

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

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

3. books.sort_by{ |Book| Book}.reverse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM