如果我想上课:
class Foo
#methods here
end
这需要让我们说FileUtils
我做吗
require 'fileutils'
class Foo
#methods here
end
或者
class Foo
require 'fileutils'
#methods here
end
补充fotanus的答案。在单独文件上定义的任何内容都位于main
命名空间中,无论您来自何处load
或require
它来自何处。它在范围或命名空间方面没有区别。此外,不能跨文件引用局部变量。
所以你的选择应该取决于可维护性。如果把依赖写在文件最上面,很容易一眼就知道依赖。另一方面,如果您在某个模块内需要,则可以清楚地表明该依赖项仅适用于特定模块。在过去,我认为前者是首选,但现在人们使用bundler
gem 的地方,有一种方法可以一目了然地看到所有依赖项,所以前者的动力可能已经下降。
无论哪种方式,它都会起作用。require
可以在任何地方使用,并且FileUtils
可以在课堂内外使用。
根据我在 github 上看到的,它通常位于顶部——顺便说一句,就像大多数其他语言一样。