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,不需要...