如何在Ruby中获取数组的总和?

时间:2015-09-20 04:24:39

标签: arrays ruby sum

当我使用get.chomp并使用数组([1,2])时,它输出到一个字符串(" [1,2]")。我想将字符串更改为数组,以便该方法可以工作。我该怎么做呢?

def sum(array) 
    array.inject(:+)
end

puts("Please enter an array.")
array = gets.chomp 

puts sum(array)
=>[1,2]
=>[1,2]

3 个答案:

答案 0 :(得分:1)

您的输入已转换为string,因此您必须在执行任何操作之前再次解析array

 def sum(array) 
    array = array[1..-2].split(',').collect! {|n| n.to_i} if array.is_a?(String)
    array.inject{|sum,e| sum + e }
 end

根据您的输入输出

> sum("[1,2]")
=> 3

答案 1 :(得分:0)

使用转换为整数时非整数的任何概念为0的概念。

2.3.1 :069 > sum = 0
=> 0
2.3.1 :070 > a.split("").each { |x| sum += x.to_i }
=> ["[", "1", ",", "2", "]"]
2.3.1 :071 > sum
=> 3

OR

2.3.1 :106 >   sum = 0
=> 0
2.3.1 :107 > a.split("").map {|x| sum += x.to_i }.max
=> 3

答案 2 :(得分:-1)

总是减少(:+)

image