本文簡要介紹ruby語言中 Kernel.require
的用法。
用法
require(name) → true or false
也別名為:gem_original_require
加載給定的 name
,如果成功則返回 true
,如果已加載函數則返回 false
。
如果文件名既不解析為絕對路徑也不以“./”或“../”開頭,則將在$LOAD_PATH
($:
) 中列出的庫目錄中搜索該文件。如果文件名以“./”或“../”開頭,則分辨率基於 Dir.pwd
。
如果文件名具有擴展名“.rb”,則作為源文件加載;如果擴展名是“.so”、“.o”或“.dll”,或者當前平台上的默認共享庫擴展,Ruby將共享庫作為Ruby擴展加載。否則,Ruby 會嘗試將“.rb”、“.so” 等添加到名稱中,直到找到為止。如果找不到名為的文件,則會引發 LoadError
。
對於 Ruby 擴展,給定的文件名可以使用任何共享庫擴展。例如,在 Linux 上,套接字擴展名為“socket.so”,而require 'socket.dll'
將加載套接字擴展。
加載文件的絕對路徑添加到$LOADED_FEATURES
($"
)。如果文件的路徑已出現在 $"
中,則不會再次加載文件。例如,require 'a'; require './a'
將不會再次加載 a.rb
。
require "my-library.rb"
require "db-driver"
加載的源文件中的任何常量或全局變量都將在調用程序的全局命名空間中可用。但是,局部變量不會傳播到加載環境。
相關用法
- Ruby Kernel.raise用法及代碼示例
- Ruby Kernel.rand用法及代碼示例
- Ruby Kernel.local_variables用法及代碼示例
- Ruby Kernel.Integer用法及代碼示例
- Ruby Kernel.binding用法及代碼示例
- Ruby Kernel.frozen?用法及代碼示例
- Ruby Kernel.`cmd`用法及代碼示例
- Ruby Kernel.autoload用法及代碼示例
- Ruby Kernel.loop用法及代碼示例
- Ruby Kernel.Hash用法及代碼示例
- Ruby Kernel.caller用法及代碼示例
- Ruby Kernel.set_trace_func用法及代碼示例
- Ruby Kernel.exit!用法及代碼示例
- Ruby Kernel.trap用法及代碼示例
- Ruby Kernel.String用法及代碼示例
- Ruby Kernel.select用法及代碼示例
- Ruby Kernel.syscall用法及代碼示例
- Ruby Kernel.then用法及代碼示例
- Ruby Kernel.sprintf用法及代碼示例
- Ruby Kernel.Pathname用法及代碼示例
- Ruby Kernel.srand用法及代碼示例
- Ruby Kernel.yield_self用法及代碼示例
- Ruby Kernel.BigDecimal用法及代碼示例
- Ruby Kernel.test用法及代碼示例
- Ruby Kernel.pretty_inspect用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Kernel.require。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。