所以我必须实现两种不同的情况。一种是将两个数相乘的方法,也可以乘以2个数以上。
我正在使用以下内容:
def multiply(arr)
arr.reduce(1, :*)
end
到目前为止,如果我使用数组输入进行单元测试,它可以正常工作。反正有没有这样做,所以我的方法可以只接受两个值,或一个数组,并返回相关的结果?是否还有一种方法可以在不使用数组输入的情况下实现它?
答案 0 :(得分:3)
使用splat
运算符:
def multiply(*arr)
arr.reduce(1, :*)
end
multiply(2, 3, 4, 5)
# => 120
如果您想 想要支持输入数组,可以flatten
使用arr
:
def multiply(*arr)
arr.flatten.reduce(1, :*)
end
multiply([2, 3, 4, 5])
# => 120
multiply(10, 3, 5)
# => 150
multiply(10, 3)
# => 30