在 Ruby (3.0.1) 中min
,数组上的函数
返回以下之一:
- 来自 self 的最小值元素。
- 从 self 中选择的一个新的最小值元素数组。
(从这里)。
所以,给定
l = [{n: 1, m: 6}, {n: 1, m: 5}, {n: 2, m: 4}, {n: 3, m: 3}, {n: 4, m: 3}]
我希望
l.min { |a, b| a[:n] <=> b[:n] }
=> [{:n=>1, :m=>6}, {:n=>1, :m=>5}]
但相反我得到
l.min { |a, b| a[:n] <=> b[:n] }
=> {:n=>1, :m=>6}
为什么?为什么我得到的是最小元素列表之一,而不是整个最小元素列表?