[英]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.