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 的文档明确说明它创建了一个实例变量:
与
我理解第二部分,即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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |