【发布时间】:2013-08-31 03:18:13
【问题描述】:
如果我想上课:
class Foo
#methods here
end
这需要让我们说FileUtils
我做吗
require 'fileutils'
class Foo
#methods here
end
或
class Foo
require 'fileutils'
#methods here
end
【问题讨论】:
如果我想上课:
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 上看到的情况,它通常位于顶部 - 顺便说一下,就像大多数其他语言一样。
【讨论】: