Ruby 中 require 與 include
Stewart Nguyen
2023年1月30日
本文將闡明 Ruby 中 require 和 include 之間的區別。
為了實現可重用性並使維護更容易獲得,我們必須將我們的功能劃分為檔案和模組。
程式設計師可以在每個檔案中定義任意數量的模組。
在 Ruby 中使用 require
方法
檔名作為字串傳遞給 require
方法。它可以是檔案的路徑,例如 ./my dir/file a.rb
或沒有副檔名的簡單檔名,例如 file a.rb.
當你使用 require,
時,檔案中的程式碼將被評估並執行。
該示例顯示瞭如何使用 require
。in file a.rb
訊息將由 file a.rb
中的檔案程式碼列印。
我們將通過在檔案 file b.rb
中呼叫 require 'file_a'
來載入 file_a
。將列印字串 in file_a.rb
的結果。
# file_a.rb
puts 'in file_a.rb'
# file_b.rb
require 'file_a'
輸出:
in file_a.rb
在 Ruby 中使用 include
方法
與載入整個檔案程式碼的 require
不同,include
採用模組名稱並使其所有方法可用於其他類或模組。
下面是 Ruby 中 include 語句的語法。當我們從名為 HelloWorld
的類中呼叫例項方法 greet
時,我們得到一個缺失錯誤。
class HelloWorld; end
HelloWorld.new.greet
輸出:
NoMethodError: undefined method `greet' for #<HelloWorld:0x007faa8405d5a8>
然後我們建立一個 Greeting
模組並將其包含在我們之前建立的類中。之後呼叫 greet
將列印一條訊息。
module Greeting
def greet
puts 'How are you doing?'
end
end
HelloWorld.include(Greeting)
HelloWorld.new.greet
輸出:
How are you doing?