0

メソッドが呼び出されるたびに配列の最後の2桁が追加されるプログラムを作成したいと思います。

したがって、たとえば、メソッド/配列が

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 Testsattr_accessor :mapですか?どこでカーゴカルトをしたのだろうか:-)あなたが(おそらく)望んでいることを行うための1つの可能な方法は次のようになります:

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 に答える