在Ruby中,编写一个接受一组数组作为参数并返回具有最多元素数组的方法的最优雅方法是什么?
def largest_array(*arrays)
end
例如,给定:
a1 = [*0..9]
a2 = [*0..99]
a3 = [*0..49]
a4 = [*0..19]
largest_array(a1, a2, a3, a4)
应该返回a2
。
请注意,该方法必须返回对最大数组本身的引用,而不是大小。此外,在这种情况下,如果存在大小相同的数组,则返回哪个数组无关紧要。
答案 0 :(得分:6)
def largest_array(*arrays)
arrays.max_by &:size
end
a1 = [*0..9]
a2 = [*0..99]
a3 = [*0..49]
a4 = [*0..19]
largest_array(a1, a2, a3, a4) == a2 # => true