1.require( aString ) -> true or false 數組
Ruby試圖載入一個名爲aString的庫,若是成功了就返回true,不然返回false。若是給定的值不是一個絕對路徑,那麼將會在$:中查找。若是給定的名字帶有.rb,則做爲源文件載入;若是擴展名爲.so,.o,.dll等(根據不一樣平臺),Ruby將這些做爲擴展程序來載入;不然,Ruby會自動嘗試在給定的文件名後面加.rb,.so,.dll等。已經載入的庫會放到數組$"中,已經在$"裏的則不會被重複裝載。好比: app
require "my-library.rb" 函數 require "db-driver" ui
|
2.load( aFileName, wrap=false ) -> true spa
裝載並執行aFileName文件,文件搜索方法同上面的require。wrap是可選參數,默認爲false,若是設爲true,則這個文件將在匿名模塊下運行,從而包括調用者的名字空間。任何aFileName裏面的局部變量在裝載它的環境下是不可用的。 對象
3.include ci
include主要用來將一個模塊插入(mix)到一個類或者其它模塊。這個模塊的方法在引入它的類或模塊中以函數的形式調用(沒有一個receiver)。這個指令運行時會執行Module.append_features方法。 table
4.extend class
extend 用來在一個對象(object,或者說是instance)中引入一個模塊,這個類從而也具有了這個模塊的方法。 require
module Mod def hello2 "Hello from Mod.n" end end
class Klass def hello "Hello from Klass.n" end end
k = Klass.new k.hello #"Hello from Klass.n" k.hello2 # NoMethodError: undefined method `hello2' … k.extend(Mod) #<0x2e4c530> k.hello #"Hello from Mod.n" |