ruby require与load区别

Ruby中"require","load"和"include"有什么不同呢?"require"和"load"用途是一致的,用來来载入新的程序库,"include"是用来mix-in模块

"require"可载入某个a.rb文件,且可以省略".rb",而且它只会在第一次的时候载入,若再次"require"时就会忽略
Java代码 复制代码 收藏代码
  1. require 'a'
  2. a = A.new
require 'a'
a = A.new


"load"和"require"一样但要用 a.rb 全名, 且每次一定会重新载入
Java代码 复制代码 收藏代码
  1. load 'a.rb'
  2. a = A.new
load 'a.rb'
a = A.new


载入程序库的顺序呢?类似java的class path,Ruby把这个信息存在"$:"系统全局变量上,你可以借着RUBYLIB或ruby -I来加入新的载入目录
Java代码 复制代码 收藏代码
  1. puts $:
puts $:


"include"用来mix-in某个模块,可以减少书写的长度
Java代码 复制代码 收藏代码
  1. require 'webrick'
  2. include WEBrick
  3. # 可以不用 server = WEBrick::HTTPServer.new(...)
  4. 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令你的程序非常容易组织和划分模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值