Ruby中内部类的模块声明

时间:2016-01-04 19:06:56

标签: ruby

例如,我有文件list.rb

module List
 class Base
 #...
 end
end

因此,在外部文件中,此类可以List::Base访问。

我们说我创建了另一个文件list_base_extenstion.rb

我可以这样做:

module List
 class BaseExtension < Base
 #...
 end
end

class BaseExtension < List::Base
end

这是平等吗?

或者BaseExtension不会被视为模块的一部分,而是直接从List::Base继承?

1 个答案:

答案 0 :(得分:3)

不,这不相等。如果你使用

module List
  class BaseExtension < Base
  end
end

您定义了一个名为List::BaseExtension的类,它继承自List::Base。相反,用

class BaseExtension < List::Base
end

您定义了一个名为BaseExtension的类,它继承自List::Base。该类将在List范围之外定义。