Ruby 中类和类实例变量的区别
让我们在本教程中了解 Ruby 中类变量和类实例变量之间的区别。
Ruby 中类和实例方法的可用性差异
类实例变量只对类方法可用,而类变量对类方法和实例方法都可用。
示例代码:
class Parent
@variable1 = "This is a class instance variable"
@@variable2 = "This is a class variable"
def self.class_method
p @variable1
p @@variable2
end
def instance_method
p @variable1
p @@variable2
end
end
Parent.class_method
object1 = Parent.new
object1.instance_method
输出:
"This is a class instance variable"
"This is a class variable"
nil
"This is a class variable"
上面输出的前 2 行是从 Parent.class_method
获得的,而后 2 行是由 object1.instance_method
生成的。正如我们所见,@variable1
在 instance_method
中不可用,因此产生了 nil
。
Ruby 中继承术语的差异
类实例变量不能传递给子类。
示例代码:
class Parent
@variable1 = "This is a class instance variable"
@@variable2 = "This is a class variable"
def self.class_method
p @variable1
p @@variable2
end
def instance_method
p @variable1
p @@variable2
end
end
class Child < Parent
end
Child.class_method
object2 = Child.new
object2.instance_method
输出:
nil
"This is a class variable"
nil
"This is a class variable"
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。