「Ruby」クラスインスタンス変数を利用するサンプル
説明
インスタンス変数はカレントオブジェクトselfに属しているため、Class クラスのオブジェクトに属しているインスタンス変数のことをクラスインスタンス変数といいます。
使用例
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
class UserClass
@name = "user007"
def self.class_attribute
@name
end
def name=(value)
@name = value
end
def name
@name
end
end
p UserClass.instance_variables
p UserClass.instance_variable_get(:@name)
p UserClass.class_attribute
cft = UserClass.new
cft.name = "user009"
p cft.name
p UserClass.class_attribute
p cft.instance_variable_get(:@name)
p UserClass.instance_variable_get(:@name)
#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
class UserClass
@name = "user007"
def self.class_attribute
@name
end
def name=(value)
@name = value
end
def name
@name
end
end
p UserClass.instance_variables
p UserClass.instance_variable_get(:@name)
p UserClass.class_attribute
cft = UserClass.new
cft.name = "user009"
p cft.name
p UserClass.class_attribute
p cft.instance_variable_get(:@name)
p UserClass.instance_variable_get(:@name)
#!/usr/bin/ruby # -*- coding: UTF-8 -*- class UserClass @name = "user007" def self.class_attribute @name end def name=(value) @name = value end def name @name end end p UserClass.instance_variables p UserClass.instance_variable_get(:@name) p UserClass.class_attribute cft = UserClass.new cft.name = "user009" p cft.name p UserClass.class_attribute p cft.instance_variable_get(:@name) p UserClass.instance_variable_get(:@name)
実行結果
>ruby test.rb
[:@name]
“user007"
“user007"
“user009"
“user007"
“user009"
“user007