Ruby 中 require 與 include

Stewart Nguyen 2023年1月30日
  1. 在 Ruby 中使用 require 方法
  2. 在 Ruby 中使用 include 方法
Ruby 中 require 與 include

本文將闡明 Ruby 中 require 和 include 之間的區別。

為了實現可重用性並使維護更容易獲得,我們必須將我們的功能劃分為檔案和模組。

程式設計師可以在每個檔案中定義任意數量的模組。

在 Ruby 中使用 require 方法

檔名作為字串傳遞給 require 方法。它可以是檔案的路徑,例如 ./my dir/file a.rb 或沒有副檔名的簡單檔名,例如 file a.rb.

當你使用 require, 時,檔案中的程式碼將被評估並執行。

該示例顯示瞭如何使用 requirein 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?

相關文章 - Ruby Methods