「Ruby」クラスインスタンス変数を利用するサンプル

2020年12月20日

説明
インスタンス変数はカレントオブジェクトselfに属しているため、Class クラスのオブジェクトに属しているインスタンス変数のことをクラスインスタンス変数といいます。
使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/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

Ruby

Posted by arkgame