Rubyの特徴としてよく言われるのは「すべてがオブジェクト」だが、オブジェクトであるならばインスタンス変数を持つことができる。今回はRubyのインスタンス変数についての色々。 インスタンス変数とは Rubyでは「@」ひとつで始まる変数名が自動的にインスタンス変数になる。インスタンス変数はその時点のselfに保存されるので、ローカル変数と違ってコードのどの場所からでも同じselfでさえあれば同じ変数を参照することができる。 通常であればクラスを定義してインスタンスメソッド内で使うことになる。 class Hoge def initialize(fuga) @piyo = fuga end def piyo @piyo end end foo = Hoge.new(1) bar = Hoge.new(2) p foo.piyo #=> 1 p bar.piyo #=> 2 このコードでは@pi