在Ruby中,可以在模块定义之外放置require
语句吗? require
< d'd模块是否仍然可以在嵌套在模块中的类中使用?
例如,是这样的:
require 'baz'
module Foo
class Bar
# some code using Baz
end
end
与此相同?
module Foo
require 'baz'
class Bar
# some code using Baz
end
end
与此相同?
module Foo
class Bar
require 'baz'
# some code using Baz
end
end
答案 0 :(得分:6)
您可以将require
放在任何地方。正如您在文档here中看到的那样,所需文件中的常量和全局变量始终添加到全局命名空间中。最佳做法通常是在任何嵌套之外使用require,但是一些gem可以利用它可以在任何地方有条件地需要基于ruby逻辑的文件,即
if some_boolean
require 'file'
end
答案 1 :(得分:2)
require
只需运行文件中的代码即可。你把它放在哪里完全无关紧要。这取决于文件中的代码,会发生什么,而不是调用require
的位置。