本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。