Ruby中"require","load"和"include"有什麼不同呢?"require"和"load"用途是一致的,用來來載入新的程式庫,"include"是用來mix-in模組
"require"可載入某個a.rb檔案,且可以省略".rb",而且它只會在第一次的時候載入,若再次"require"時就會忽略
Java代碼 require 'a' a = A.new
require 'a'a = A.new
"load"和"require"一樣但要用 a.rb 全名, 且每次一定會重新載入
Java代碼 load 'a.rb' a = A.new
load 'a.rb'a = A.new
載入程式庫的順序呢。類似java的class path,Ruby把這個資訊存在"$:"系統全域變數上,你可以藉著RUBYLIB或ruby -I來加入新的載入目錄
Java代碼 puts $:
puts $:
"include"用來mix-in某個模組,可以減少書寫的長度
Java代碼 require 'webrick' include WEBrick # 可以不用 server = WEBrick::HTTPServer.new(...) server = HTTPServer.new(...)
require 'webrick'include WEBrick# 可以不用 server = WEBrick::HTTPServer.new(...)server = HTTPServer.new(...)
那麼load有什麼用呢。
Rails程式優先使用load而不是require來載入程式庫
在development模式下,當你修改一段代碼後,不用重啟伺服器,你的代碼更改會被自動reload,這就是load的作用
而如果你使用require的話,多次require並不會起作用
對大型Ruby程式如Rails,使用多個檔案和require/load/include令你的程式非常容易組織和劃分模組