instance_variable_set

instance_variable_set

ri

 ------------------------------------------- Object#instance_variable_set
      obj.instance_variable_set(symbol, obj)    => obj
 ------------------------------------------------------------------------
      Sets the instance variable names by _symbol_ to _object_, thereby
      frustrating the efforts of the class's author to attempt to provide
      proper encapsulation. The variable did not have to exist prior to
      this call.
 
         class Fred
           def initialize(p1, p2)
             @a, @b = p1, p2
           end
         end
         fred = Fred.new('cat', 99)
         fred.instance_variable_set(:@a, 'dog')   #=> "dog"
         fred.instance_variable_set(:@c, 'cat')   #=> "cat"
         fred.inspect                             #=> "#<Fred:0x401b3da8 @a=\"dog\", @b=99, @c=\"cat\">"
 

refe

 Object#instance_variable_set
 --- instance_variable_set(var, val)
 
     ruby 1.8 feature
 
     オブジェクトインスタンス変数 var の値を val に設定し
     て val を返します。インスタンス変数が定義されていなければ イ
     ンスタンス変数が定義されます。インスタンス変数名 var は文字
     列か Symbol で指定します。
 
         obj = Object.new
         p obj.instance_variable_set("@foo", 1)  # => 1
         p obj.instance_variable_set(:@foo, 2)   # => 2
         p obj.instance_variable_get(:@foo)      # => 2