Ruby オブジェクトのインスタンス変数を取得

ちょっと悩んだのでメモ

dog.rb

class Dog

  def initialize(a,b)
    @a = a
    @b = b
  end

end

dog = Dog.new(1,2)
p dog
p dog.instance_variable_get(:@a)

p dogでは

#<Dog:0000000 @a=1, @b=2>

p dog.instance_variable_get(:@a)では 1
が返ってきます。

詳しいことはこのへんで
ref.xaio.jp