gpt4 book ai didi

ruby - sort 和 sort_by 之间的细微差别

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

这不是一个技巧问题:

[1,2,3].sort_by { |x, y| x <=> y }
=> [1, 2, 3]

[1,2,3].sort_by { |x, y| y <=> x }
=> [1, 2, 3]

这是怎么回事?我原以为数组会彼此相反(因为它们具有排序和相同的参数)。

最佳答案

#sort_by应该只采用一个 block 参数,数组中的一项,并根据 block 的结果进行排序。

当向它传递两个 block 参数时,第二个设置为 nil因此所有 block 结果都像 1 <=> nil这是 nil所以数组的顺序不变。

[1, 3, 2].sort_by { |x| x } # sorts using x <=> y
=> [1, 2, 3]

[1, 3, 2].sort_by { |x, y| x <=> y } # sorts using nil <=> nil
=> [1, 3, 2]

关于ruby - sort 和 sort_by 之间的细微差别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17180284/

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