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

ruby – `attr_accessor` /`attr_reader`创建实例变量是什么意思

发布时间:2020-12-17 03:07:48 所属栏目:百科 来源:网络整理
导读:attr_accessor 的文档明确说明它创建了一个实例变量: […] creating an instance variable ( @name ) and a corresponding access method […] 与 attr_reader 的文档一样: Creates instance variables and corresponding methods […] 我理解第二部分,即a
attr_accessor的文档明确说明它创建了一个实例变量:

[…] creating an instance variable (@name) and a corresponding access method […]

attr_reader的文档一样:

Creates instance variables and corresponding methods […]

我理解第二部分,即attr_accessor和attr_reader创建方法,但我没有得到第一部分.

他们“创建一个实例变量”是什么意思?

解决方法

这是文档中的错误/误导性措辞. attr_reader / attr_accessor本身不会创建任何变量.他们怎么样?它们在类实例生命周期之外工作.甚至读取访问也不会使实例变量变为现实.只有写访问才能创建它们.

class Foo
  attr_accessor :bar
end

foo = Foo.new
foo.instance_variables # => []
foo.bar # try read ivar
foo.instance_variables # => [],nope,not yet
foo.bar = 2 # write ivar
foo.instance_variables # => [:@bar],there it is

(编辑:李大同)

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

    推荐文章
      热点阅读