加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby类变量初始值

发布时间:2020-12-17 01:36:36 所属栏目:百科 来源:网络整理
导读:参见英文答案 Total newbie: Instance variables in ruby?????????????????????????????????????4个 在PHP中我写道: Class Test{ public $a=100;}$a=new Test();echo $a-a; //prints 100 它打印100,但在我写的时候是ruby: class Test @a=100 attr_accessor
参见英文答案 > Total newbie: Instance variables in ruby?????????????????????????????????????4个
在PHP中我写道:

Class Test{
  public $a=100;
}

$a=new Test();
echo $a->a; //prints 100

它打印100,但在我写的时候是ruby:

class Test
  @a=100
  attr_accessor :a
end

a=Test.new
puts a.a #=> prints nil

a为零,打印为零.为什么?

解决方法

你混合了一些东西.

你用@a = 100定义的是一个类实例变量.

您将使用attr_accessor访问的内容:a是一个实例变量@a.

实例变量用法示例:

class A
  def initialize a
    @a = a
  end
  attr_accessor :a
end

instance = A.new(2)
#=> 2
instance.instance_variables
#=> [:@a]
instance.a
#=> 2

类实例变量用法示例:

class A
  @a = 1
  class << self
    attr_accessor :a
  end
end

A.a
#=> nil
A.a = 2
#=> 2
A.a
#=> 2
instance = A.new
instance.class.a # access instance's class instance variable
#=> 2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读