2

如果我想上课:

class Foo
    #methods here
end

这需要让我们说FileUtils

我做吗

require 'fileutils'

class Foo
    #methods here
end

或者

class Foo
    require 'fileutils'
    #methods here
end
4

2 回答 2

5

补充fotanus的答案。在单独文件上定义的任何内容都位于main命名空间中,无论您来自何处loadrequire它来自何处。它在范围或命名空间方面没有区别。此外,不能跨文件引用局部变量。

所以你的选择应该取决于可维护性。如果把依赖写在文件最上面,很容易一眼就知道依赖。另一方面,如果您在某个模块内需要,则可以清楚地表明该依赖项仅适用于特定模块。在过去,我认为前者是首选,但现在人们使用bundlergem 的地方,有一种方法可以一目了然地看到所有依赖项,所以前者的动力可能已经下降。

于 2013-08-31T03:36:09.033 回答
3

无论哪种方式,它都会起作用。require可以在任何地方使用,并且FileUtils可以在课堂内外使用。

根据我在 github 上看到的,它通常位于顶部——顺便说一句,就像大多数其他语言一样。

于 2013-08-31T03:21:39.473 回答