Ruby 请教,Eigenclass 中的 attr_accessor 的作用?

andor_chen · May 12, 2012 · Last by zw963 replied at May 12, 2012 · 2632 hits

看到很多代码中都使用了这样的代码:

class C
  class << self
    attr_accessor :m
  end
end

这样在 eigenclass 中使用 attr_accessor 的作用是什么呢?

相当于是个类变量吧

puts C.m
C.m =123
puts C.m

输出为:

nil
123

生成 getter, setter 方法的。

class << self #打开类对象空间 attr_accessor :m #加getter/setter 于是多了两个方法 C.m= C.m 执行 C.m=obj_of_m,结果是 obj_of_m 会存在 C 类的对象空间,可以通过 C.m 取出来

就是给类添加了一个访问器方法,准确地说:是给 Class 对象添加了一个访问器 singleton method. 或者说打开类对象的 eigenclass, 添加了一个 accessor.

You need to Sign in before reply, if you don't have an account, please Sign up first.