【问题标题】:In Ruby, do i require within a class or outside?在 Ruby 中,我需要在课堂内还是在课堂外?
【发布时间】: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

【问题讨论】:

标签: ruby oop


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    无论哪种方式都可以。 require 可以在任何地方使用,FileUtils 在课堂内外都可以使用。

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

    【讨论】:

    • 我在想如果我在类中需要它,当我实例化它时,require 行会被不必要地执行或调用吗?导致不必要的开销
    • @GeorgeAnandaEman 如果它在你的类主体中,它只会被调用一次,但如果是方法调用,它会在你每次调用该方法时被调用。
    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2019-07-03
    相关资源
    最近更新 更多