簡體   English   中英

什么時候需要Ruby中的模塊?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM