新手问题 'class A::C' 这样的 class 定义表示什么意思?

msl12 · 2016年11月05日 · 最后由 msl12 回复于 2016年11月05日 · 2492 次阅读

看书的时候看到这里看不太明白,书里写得也不是特别清楚:

module A
end

class A::C
end

p A::C.ancestors # [A::C, Object, Kernel, BasicObject]

我还以为这样是表示 C 继承于 A 呢,但是结果表示并不是继承的写法,那么这里是表示的什么意思呢? 😮

相当于 namespace 命名空间

一楼已经给出正确解释,我补充下,相当于在 module A 里定义 class,

module A
  class C
  end
end

继承是下面的写法:

class B
end

class C < B
end

原来如此,懂了~ 😆

和在module A里直接定义 class 的作用域似乎不同

需要 登录 后方可回复, 如果你还没有账号请 注册新账号