如果一个实例变量属于一个类,我可以使用类实例直接访问实例变量(例如@hello
)吗?
class Hello
def method1
@hello = "pavan"
end
end
h = Hello.new
puts h.method1
发布于 2016-07-24 01:46:50
您也可以像这样调用attr_reader
或attr_accessor
来完成此操作:
class Hello
attr_reader :hello
def initialize
@hello = "pavan"
end
end
或
class Hello
attr_accessor :hello
def initialize
@hello = "pavan"
end
end
调用attr_reader
将为给定变量创建一个getter
:
h = Hello.new
p h.hello #"pavan"
调用attr_accessor
将为给定变量创建一个getter
和一个setter
:
h = Hello.new
p h.hello #"pavan"
h.hello = "John"
p h.hello #"John"
正如您可能理解的那样,请相应地使用attr_reader
和attr_accessor
。仅在需要getter
和setter
时使用attr_accessor
,在仅需要getter
时使用attr_reader
https://stackoverflow.com/questions/12122736
复制相似问题