gpt4 book ai didi

ruby - <=> 如何适用于不同的排序策略?

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

我正在阅读有关 CodeAcademy 的一些教程,并遇到了这种情况:

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

# To sort our books in ascending order, in-place
books.sort! { |firstBook, secondBook| firstBook <=> secondBook }


# Sort your books in descending order, in-place below
# this lin initially left blank
books.sort! {|firstBook, secondBook| secondBook <=> firstBook}

而不是使用 if/else block ,我试了一下,成功了,但我不知道为什么。我认为您将项目放在支票中的顺序无关紧要(即 a <=> bb <=> a )。有人可以解释这里发生了什么吗?

最佳答案

如果你反转<=>中的元素你扭转它的值(value)。如果元素相等,则此运算符返回 0,但如果第一个较小,则返回负值,如果第一个较大,则返回正值。因此如果temp = a <=> b然后 b <=> a-temp .因此,如果以相反的顺序编写参数,则可以颠倒排序顺序。

关于ruby - <=> 如何适用于不同的排序策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247094/

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