Ruby 中 require 與 include
Stewart Nguyen
2023年1月30日
Ruby
Ruby Methods
本文將闡明 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?
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe