Ruby Language Afficher les variables d'instance d'un objet


Exemple

Il est possible d'interroger un objet sur ses variables d' instance_variables utilisant instance_variables , instance_variable_defined? , et instance_variable_get , et modifiez-les en utilisant instance_variable_set et remove_instance_variable :

class Foo
  attr_reader :bar
  def initialize
    @bar = 42
  end
end
f = Foo.new
f.instance_variables                #=> [:@bar]
f.instance_variable_defined?(:@baz) #=> false
f.instance_variable_defined?(:@bar) #=> true
f.instance_variable_get(:@bar)      #=> 42
f.instance_variable_set(:@bar, 17)   #=> 17
f.bar                               #=> 17
f.remove_instance_variable(:@bar)   #=> 17
f.bar                               #=> nil
f.instance_variables                #=> []

Les noms des variables d'instance incluent le symbole @ . Vous obtiendrez une erreur si vous l'omettez:

f.instance_variable_defined?(:jim)
#=> NameError: `jim' is not allowed as an instance variable name