Ruby Array: Methodology to add numbers
本问题已经有最佳答案,请猛点这里访问。
我正在尝试编写代码,它将获取一个数组并返回数组的和。首先,这是将数字放入数组的正确方法吗?基于错误,这似乎有问题。
1 2 3 4 5 6 | def total(num) x = [] x << num puts x.inject(0){|a,b|a+b} end |
这里好像有一些问题。首先,当我使用
1 | `total': wrong number of arguments (5 for 1) (ArgumentError) from calculator.rb:11 |
号
我还记得有个错误:
你的
1 2 3 4 5 | def total(*nums) nums.inject(0) {|a,b| a + b } end total(3,2,41,2) #=> 48 |
您可以使用带有
1 | nums.inject(0, :+) #=> 48 |
号
这是通过将符号表示的方法发送到累加器,使用数组的每个成员作为参数(相当于将块定义为
实际上,在这种情况下,不需要定义初始值。Inject有第三种形式,只需使用数组的第一个成员作为初始值,并将其他成员相加:
1 | nums.inject(:+) |