Ermöglicht eine Klasse wie dieses:Rubin - Wie eine Instanzvariable in verschiedenen Objekten ändern Karte Methode
class Foo
attr_accessor :var_1, :var_2, :var_3
def initialize(var_1, var_2, var_3)
@var_1 = var_1
@var_2 = var_2
@var_3 = var_3
end
end
und jetzt schaffen wir einige Objekte:
a = Foo.new("c", 1, "d")
b = Foo.new("e", 2, "f")
c = Foo.new("g", 3, "h")
dann machen wir ein Array mit den neu erstellten Objekte:
array = [a, b, c]
Und hier, wo ich fest, ich will einen neuen Wert auf eine bestimmte Instanz var hinzufügen iable vom Objekt.
Beispiel:
Ich versuche var_2
um eins erhöht sich ändern, aber ich weiß nicht, wie es zu der Instanz Variable var_2
anrufen oder zuweisen:
newArray = array.map { |x|
x.var_1 + 1 # assign the new value to the instance variable 'var_2'
}
def showArray(array)
array.each do | var |
puts "Var 1: #{var.var_1} | Var 2: #{var.var_2} | Var 3: #{var.var_3}"
end
end
showArray(newArray)
# desired output:
# => Var 1: c | Var 2: 2 | Var 3: d
# => Var 1: e | Var 2: 3 | Var 3: f
# => Var 1: g | Var 2: 4 | Var 3: h
Ich habe zu verwenden, die Kartenmethode.