在网上查了很多相应的资料都说的不是很好理解,自己整理了一下,做个记录
attr_accessor相当于attr_reader和attr_writer的合集,实际上是在定义类成员变量的时候就给他定义了一个get和set方法。
在ruby中,类成员变量都是私有的,不能直接通过(类名.成员变量名)这样来对成员变量值进行操作。
在这个实例中可以看到,使用attr_accessor定义的成员可以直接对其进行set和get的操作,如果没有attr_accessor,则不行。
class Test
attr_accessor :name
def initialize()
@name = "test attr"
end
end
t= Test.new
puts t.name
t.name = "test attr modify"
puts t.name