Forum: Ruby Manejar atributos de 2 objetos de una clase

Dc648be0522c73d92ded663afd9a52fd?d=identicon&s=25 Sergio Schwab (tiburcio777)
on 2016-09-26 21:51
Hola a todos

Les pido si me pueden evacuar una consulta:
Estoy viendo clases y objetos y quiero referenciar dentro de una misma
clase los atributos de 2 objetos diferentes.
El código seria este:

class Enterolargo
    def initialize
        @e = Array.new
    end
    def generar(l)
        for i in 0..l-1
            @e[i]=rand(9)
        end
    end
    def sumar(b)
    #Aqui debería sumar cada elemento de a (self)con cada elemento de b
    # no se si es posible hacerlo…
    end
    def mostrar
        p @e
    end


end

a = Enterolargo.new
a.generar(20)

b = Enterolargo.new
b.generar(20)

a.sumar(b)

Saludosy gracias!
Sergio Schwab
6c7fb11d4f3fa354a51a3ea0375d895f?d=identicon&s=25 Joe Gain (timeout)
on 2016-09-27 18:33
Hi Sergio,

class Enterolargo
  # You need a "getter" or in ruby terms "reader"
  attr_reader :e

  def initialize
      @e = []
  end

  def generar(l)
      for i in 0..l-1
          @e[i]=rand(9)
      end
  end

  def sumar(b)
    #Aqui debería sumar cada elemento de a (self)con cada elemento de b
    # no se si es posible hacerlo…
    [e, other.e].transpose.map {|x| x.reduce(:+)}
  end

  def mostrar
      p @e
  end
end

a = Enterolargo.new
a.generar(20)

b = Enterolargo.new
b.generar(20)

a.sumar(b)
a.mostrar #=> [1, 3, 5, 6, 3, 4, ... ]
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.