rubyで、インスタンス変数を外部からいじくるメソッドいろいろ


よく忘れるのでメモ

  • instance_variable_set で格納
  • instance_variable_get で取得
  • instance_variable_defined? で存在確認
  • instance_variables でインスタンス変数の一覧を取得

サンプルコード

class Test
end

test = Test.new
# 存在確認
p test.instance_variable_defined?(:@name)  # false
# 格納
test.instance_variable_set(:@name, 'name')
# 取得
p test.instance_variable_get(:@name) # name
# 存在確認
p test.instance_variable_defined?(:@name)  # true
# 一覧
p test.instance_variables # ["name"]