我正在尝试用 ruby 编写一个小函数,该函数从用户那里得到一个数组,然后对数组中的数据求和。我把它写成
def sum(a)
total = 0
a.collect { |a| a.to_i + total }
end
然后该函数通过一个 rspec 运行,该 rspec 最初通过向其输入一个空白数组来对其进行测试。这会导致以下错误
sum computes the sum of an empty array
Failure/Error: sum([]).should == 0
expected: 0
got: [] (using ==)
所以它告诉我,当它输入空白数组时,它应该得到 0,而是得到数组。我尝试输入一个 if 语句,写成
def sum(a)
total = 0
a.collect { |a| a.to_i + total }
if total = [] then { total = 0 end }
end
但它给了我一个错误说
syntax error, unexpected '}', expecting => (SyntaxError)
我究竟做错了什么?