[英]When do you have to require a module in Ruby?
说你有
module MyFirstModule
def say_hello
puts "Hello"
end
end
和
class ModuleTester
include MyFirstModule
end
在类定义之上是否需要一个require MyFirstModule
语句? 你有没有需要这个模块? 什么时候,为什么?
你永远require
模块,你require
文件。
在上面的示例中,如果您发布的两个片段位于不同的文件中,例如my_first_module.rb
和module_tester.rb
,那么您将不得不这样做
require "my_first_module"
在你可以引用MyFirstModule
之前。
(显然,如果他们是在同一个文件,没有require
声明将是必要的,而且是没有意义反正就没有文件require
。)
require
做的是在库路径中查找给定的Ruby文件,然后加载Ruby文件,就像执行它一样。 在程序运行期间,该文件最多将被加载一次(这与load
命令的区别在于,这与require
非常相似)。
在上面的示例中,在使用MyFirstModule
之前,您必须require
定义它的文件。
请注意,有一个自动加载机制,可以自动为您require
文件。 此外,Rails确实require
大多数类自动。 因此,不要混淆在某些情况下似乎没有必要使用require
语句。
你不需要。 'Include'会根据您的需要将方法say_hello暴露给您的班级。 'Require'用于从另一个文件中提取所有代码。 因此,如果您在另一个文件中定义了MyFirstModule,则需要该文件,以便您可以在该类中包含该模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.