Ruby中,可以使用load和require来包含另一个文件。每次运行到load时,load后的文件会被载入并执行。
4.times do |i|
File.open("temp.rb","w") do |f|
f.puts "def test"
f.puts "#{i}"
f.puts "end"
end
load "temp.rb"
puts test
end
执行结果为:
0
1
2
3
在上面的小程序里load "temp.rb"执行了4次,每一次temp.rb文件都不同,所以test方法执行后的结果也不同。
require和load不同,它只加载文件一次,即在第一次执行到require时载入,以后碰到require同一文件时自动忽略,已经被加载的文件保存在$”中。另外,require还可以用来加载二进制格式的库。Require可以使用绝对路径或相对路径,如果使用了相对路径,那么系统会在$:变量包含的目录中搜寻。Require和load的另一个不同是当包含文件是Ruby代码时,require可以不加后缀名。Require将当前所有加载的文件保存在$"变量中。
summary:
require,
load,include都是Kernel模块中的方法,他们的区别如下:
lrequire,load用于包含文件,include则用于包含的模块。
lrequire加载一次,load可加载多次。
lrequire加载Ruby代码文件时可以不加后缀名,load加载代码文件时必须加后缀名。
lrequire一般情况下用于加载库文件,而load用于加载配置文件。
分享到:
相关推荐
### Ruby中require、load、include、extend的区别介绍 在Ruby编程语言中,为了实现代码的重用和组织,开发者经常需要引入外部文件或模块。在这一过程中,`require`、`load`、`include`、`extend`这几个关键字发挥了...
### Ruby 模块详解 #### 一、Ruby 模块简介 ...通过`require`和`include`语句,可以轻松地在不同文件间共享和重用代码。此外,利用 Mixin 功能,可以实现类似多重继承的效果,使得代码更加灵活和可维护。
`require`和`load`用于加载外部文件,`include`用于将模块混合到类中。 ```ruby require 'my_module' ``` #### 九、异常 **9.1 异常处理** Ruby使用`begin...rescue...end`块来捕获和处理异常。 ```ruby begin ...
### MongoDB与Ruby:深入探索文档型数据库及其在Ruby中的应用 #### 一、MongoDB简介 MongoDB是一款基于分布式文件存储的开源文档型数据库系统,它由C++编写而成,适用于处理大规模数据集。MongoDB的设计哲学是为了...
**8.4 Require, load和include** - **require/load:** 用于加载外部的Ruby文件。 - **include:** 用于将一个模块混合到当前类中。 #### 九、异常 **9.1 异常处理** Ruby提供了try/catch风格的异常处理机制。 ...
- **Require, load和include**:如何加载其他文件或模块。 #### 九、异常 - **异常处理**:try...rescue...else...ensure结构的使用。 - **定义异常类**:如何自定义异常类。 - **catch和throw**:非本地跳转机制...
`require`和`load`用于加载其他Ruby文件,`include`用于将模块混入到类中。 #### 八、异常 **9.1 异常处理** Ruby使用`begin...rescue...end`结构来捕获和处理异常: ```ruby begin raise "An error occurred....
§8.4 Require, load和include 62 第九章 异常 64 §9.1 异常处理 64 §9.2 定义异常类 68 §9.3 catch和throw 68 第十章 多任务处理 69 §10.1 多线程处理 69 §10.1.1 线程创建 69 §10.1.2 线程操作 70 §10.1.3 ...
**8.4 Require, load和include** - `require`:加载Ruby文件。 - `load`:加载Ruby文件,但不会检查是否已经加载过。 - `include`:用于引入模块。 #### 九、异常 **9.1 异常处理** 异常处理机制可以帮助程序在...
**8.4 Require, load和include** - `require`:加载并执行指定文件。 - `load`:加载文件,不会缓存。 - `include`:将模块混入到类中。 #### 九、异常 **9.1 异常处理** 可以使用`begin...rescue...ensure......
##### §8.4 Require, load和include - **require**:加载Ruby文件,只有第一次加载时才执行。 - **load**:加载Ruby文件,每次都会执行。 - **include**:将模块中的方法包含到当前类中。 #### 九、异常 ##### §...
**8.4 Require, load和include** - `require`用于加载外部的Ruby文件。 - `load`用于动态加载文件,常用于脚本环境。 - `include`用于将模块包含进类中。 #### 九、异常 **9.1 异常处理** - 使用`begin...rescue...
在Ruby中加载,解析和级联CSS规则集。 建立 gem install css_parser 用法 require 'css_parser' include CssParser parser = CssParser :: Parser . new parser . load_uri! ( '...
- Ruby提供了`require`和`load`两种方式来包含其他文件。 - `require`:当首次加载某个文件时会将其内容执行一次,之后如果再次`require`同样的文件,则不会重复执行。 - `load`:无论何时调用`load`,都会重新...
`prepend`和`include`方法可以向祖先链中添加模块,`prepend`将模块置于当前类之前,`include`置于之后。 10. **私有方法**:私有方法不能通过直接指定接收者调用,只能在定义类的内部通过`self`调用。`Object#send...
使用这个库,您可以轻松地使用 Ruby 访问 2ch。 安装 gem install x2ch 例子 获取 2ch 类别和板列表。从服务器下载与 gzip 兼容。 require 'x2ch' include X2CH bbs = Bbs.load bbs.each{|category| puts '- ' +...
将纯文本绑定到 Ruby 类。 灵感来自 ROXML 用法 require 'structr' Load = Struct . new ( :one , :five , :fifteen ) ProcessItem = Struct . new ( :pid , :user ) class Top include Structr converter :...