iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0

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令你的程式非常容易組織和劃分模組


上一篇
[Day26] Ruby on Rails - 期待週末的來臨...
下一篇
[Day28] Ruby on Rails - Mountable vs. Full Engine
系列文
Junior Ruby on Rails 工程師的心得與自我挑戰 30 天 (單身狗轉移注意力之歷練)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言