Ruby "multiply" 函数攻略

Ruby "multiply" function strategy

作为我正在学习的测试优先 ruby 课程的一部分,我需要制作一个基本的乘法方法,该方法首先采用 2 个参数并将它们相乘,但之后 rspec 测试因为能够以相同的方法将多个数字相乘。

我只想确认我的假设,因为 Ruby 不支持方法重载,我将不得不让我的一个乘法函数接受一个数组并执行以下操作:

def multiply(arr)
    total = 0
    arr.each do |x| total *= x end
    return total
end

有人可以提供一些关于此处最佳策略的启示吗?我已经正确了吗?这是 rspec:

describe "#multiply" do

  it "multiplies two numbers" do
    multiply(3,9).should == 27
    end

  it "multiplies several numbers" do
    multiply([1,2,3,4]).should === 24
    end
end

multiply 的实施而言,最简单的方法就是这样做

def multiply(*numbers)
    numbers.reduce(:*)
end

p multiply(10,2)
p multiply(10,2,3)