0

我想编写一个程序,每当调用方法时,都会添加数组中的最后两位数字。

例如,如果方法/数组是

def add
 array = [1,2,3,4]
end

如果我打电话array,它应该返回我7 (4 + 3)。如果我array再次调用,它应该返回9 (7+2)。由于43现在被替换为7.

我想做但没有成功的方式是

def add
        num = 0
        @sum = [1,2,3]
        @sum.map{|w| sum += w}.last
      end

def result 
 return add
end

这就是我调用它的方式

class = Test.new
class.add
class.result # Should return 7
class.add
class.result #should return 9
4

1 回答 1

0

Prakmya,有人对你投了反对票,因为你的问题很难理解。首先,您为什么要打扰class Testsand attr_accessor :map?我想知道你在哪里对货物狂热 :-) 做你(也许)想要的一种可能的方法是:

def join_last_2 array
  return if array.empty?
  last = array.pop
  if array.empty? then
    array << last
  else
    array[-1] = array[-1] + last
  end
end

a = 1, 2, 3, 4, 5
#=> [1, 2, 3, 4, 5]
join_last_2( a )
#=> 9
a
#=> [1, 2, 3, 9]
join_last_2( a )
#=> 12
a
#=> [1, 2, 12]
# etc.
于 2013-02-12T09:18:59.343 回答