wenn Sie attr_accessor verwenden Attribute in einer Klasse zu definieren, Rubin refexion verwenden, ein paar Methoden definieren, für jedes Attribut erklärt, man den Wert zu erhalten und andere zu setzen, eine Instanzvariable mit dem gleichen Namen mit
p A.instance_methods
[:x, :x=, :y, :y=, :nil?, :===, :=~, :!~, :eql?, :hash, :<=>, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?,..
so dass diese Attribute sind erreichbar, außerhalb der Klasse, mit
des Attributs
können Sie diese Methoden sehen
oder innerhalb der Klasse durch die entsprechende Instanz-Variable
class A
...
def attributes
[@x,@y]
end
...
end
p a.attributes #=> [5,10]
Hinweis: attrs wird * alle zurückkehren * Instanzvariablen, und nicht nur die, die von 'attr_accessor' offengelegt werden. – Jonah
@Jonah: Ja, das war die Annahme damals. Für eine genauere Methode kann man auf [diese Antwort] verweisen (http://stackoverflow.com/a/34440466/125816). –