当我使用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]
答案 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