在Ruby中,我是需要在课堂上还是在课堂外?

时间:2013-08-31 03:18:13

标签: ruby oop

如果我想上课:

class Foo
    #methods here
end

要求我们说FileUtils

我该做什么

require 'fileutils'

class Foo
    #methods here
end

class Foo
    require 'fileutils'
    #methods here
end

2 个答案:

答案 0 :(得分:5)

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

所以你的选择应该取决于可维护性。如果您在文件顶部编写依赖项,则很容易一目了然地了解依赖项。另一方面,如果您在某个模块中需要,它可以清楚地表明该依赖关系仅适用于特定模块。在过去的日子里,我认为前者是首选,但现在人们使用{{1}}宝石,有一种方法可以一目了然地看到所有依赖关系,因此前者的动机可能已经下降。 / p>

答案 1 :(得分:3)

无论哪种方式都可以。 require适用于任何地方,FileUtils将在您班级内外都可用。

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