如果我有以下项目结构
项目/ 库/ 子项目/ a.rb b.rb 库文件
其中 lib.rb 看起来像这样:-
module Subproject
def foo
do_some_stuff
end
end
并且 a.rb 和 b.rb 都需要在 lib.rb 中混合一些方法,并且都在一个模块中命名空间,如下所示:-
require 'subproject/lib'
module Subproject
class A
include Subproject
def initialize()
foo()
end
end
end
ruby 在遇到 include 语句时会做什么?它怎么知道我只想包含来自 lib.rb 的 mixin,而不是包含 A 类和 B 类的整个模块,这纯粹是基于子项目/lib 的要求,还是我弄错了,它是包括整个模块,包括它们自身内部的 A 类和 B 类的定义?