以下程序具有相同的行为。 require
实际上做了什么?
在这两种情况下,我都可以使用my_extension.rb
中定义的方法。但是,红宝石哪个更好?
case1:在课堂上使用requre
。
class Foo
require "my_extension"
end
case2:在顶层使用require
。
require "my_extension"
class Foo
end
答案 0 :(得分:1)
案例2更好,纯粹是因为它是正确的礼仪,并且更容易让其他程序找到代码的依赖项。
从技术上讲,无论你在何处调用它,require
都会做同样的事情:它只是运行文件中的代码。展示位置之间的唯一区别是实际调用require
时(如果有的话)。例如:
def my_method
require "my_extension"
end
在这种情况下,在调用my_extension.rb
之前,不会加载my_method
。