迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Ruby 中类和类实例变量的区别

作者:迹忆客 最近更新:2023/03/20 浏览次数:

让我们在本篇文章中了解 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 生成的。正如我们所见,@variable1instance_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"

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

用 Ruby 解析 XML

发布时间:2023/03/21 浏览次数:112 分类:编程语言

本文展示了如何在 Ruby 中使用 gem nokogiri 解析 XML 文件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便