ruby require與load區別

來源:互聯網
上載者:User
 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令你的程式非常容易組織和劃分模組
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.