[英]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.