面试题答案
一键面试def sum_of_squares(*nums)
nums.sum { |num| num**2 }
end
def calculate_total_square_sum(arrays)
sum_of_squares(*arrays.flatten)
end
参数解包实现说明
arrays.flatten
:这一步将多维数组[[1, 2], [3, 4, 5], [6]]
转换为一维数组[1, 2, 3, 4, 5, 6]
。*arrays.flatten
:这里使用了参数解包技巧。*
操作符将arrays.flatten
这个数组解包,把数组中的每个元素作为独立的参数传递给sum_of_squares
方法。例如,如果arrays.flatten
的结果是[1, 2, 3]
,经过参数解包后,就相当于调用sum_of_squares(1, 2, 3)
。这样,sum_of_squares
方法就能对每个独立的数字进行平方和计算。