Ruby 的include和extend用法

2021-09-01 19:03:05 字數 792 閱讀 2833

ruby使用include和extend來對class做補充。

假設有乙個module:

module person

def about_me

puts "this is about me."

endend

1, include

1.1 使模組的方法變成類的例項方法:

class student

include person

endstudent = student.new

student.about_me # puts "this is about me."

student.about_me # 沒有定義此方法,丟擲異常。

1.2 如何要讓 student 可以直接呼叫include module的方法,可以在

def self.included(c) ... end 實現,比如

module person

def about_me

puts "this is about me."

enddef self.included(c)

def c.call_me

puts "this is class me"

endend

end

student.call_me即可直接呼叫。

2, extend

是直接變成類的類方法 ,相當於class << self. 

參考資料: 

include和 include的區別

區別在於 如果用了,則一定要引入命名空間,即 using namespace std 如果用了,則不能引入命名空間,否則會引起編譯錯誤,提示找不到命名空間.例程如下 情況一 使用和命名空間 include using namespace std int main 輸出 need to use nam...

include 和 include 的區別

answer 1 include 會將指定檔案的內容插入到源程式檔案中。當使用的格式時,編譯器會從環境變數include所指定的路徑中尋找file name 檔案,如果沒有定義include,c 編譯器會在指定的路徑中搜尋檔案。如ht ide3000安裝後,預設include路徑是c ht ide3...

include和 include的區別

include是c 標頭檔案庫 include是c標頭檔案庫。c 有一部分繼承與c,所以c 中保留了iostream.h這種寫法。使用 include的時候,要在下邊加上using namespace std 例如 include using namespace std 使用 include,不需要...