在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
.
请注意,该方法必须返回对最大数组本身的引用,而不是大小.此外,在这种情况下,如果存在具有相同大小的数组,则返回哪个数组无关紧要.
使用Enumerable#max_by
:
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