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

Geo*_*man 2 ruby oop

如果我想上课:

class Foo
    #methods here
end
Run Code Online (Sandbox Code Playgroud)

这要求让我们说 FileUtils

我该怎么办

require 'fileutils'

class Foo
    #methods here
end
Run Code Online (Sandbox Code Playgroud)

要么

class Foo
    require 'fileutils'
    #methods here
end
Run Code Online (Sandbox Code Playgroud)

saw*_*awa 5

补充fotanus的答案.在一个单独的文件中定义的所有内容掌握在main命名空间,无论你load或者require它.它在范围或命名空间方面没有区别.此外,不能跨文件引用局部变量.

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