gpt4 book ai didi

ruby - `sort_by` 如何处理多个字段?

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:25 25 4
gpt4 key购买 nike

在下面的代码中,due_dateposition 是可选字段,而 important 是始终设置为 truefalse

posts.sort_by do |post| 
[post.due_date || 0, post.position || 0, post.important? ? 0 : 1]
end

我正在尝试弄清楚多重排序的工作原理。如果存在 due_date,则它优先或将其设置为零。为什么我们要在这里将其设置为零?

最佳答案

这里的问题不在于多重比较。如果比较数组,每个元素将与另一个数组中的相应元素进行比较。如果这些值有时采用数值,那么它们总是必须是数字。数字不能与 nil 进行比较,这样做会引发错误。将它们默认为零是为了确保它们是数字。只要您将它们默认为数字,就不会引发错误。零的特定选择是基于您希望将具有缺失值的条目放置在何处;您可以为不同的结果选择无穷大、负无穷大等。

关于ruby - `sort_by` 如何处理多个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22105571/

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