ruby require与load区别

来源:互联网 发布:淘宝关键字排名优化 编辑:程序博客网 时间:2024/06/06 10:58
 Ruby中"require","load"和"include"有什么不同呢?"require"和"load"用途是一致的,用來来载入新的程序库,"include"是用来mix-in模块

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


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


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


"include"用来mix-in某个模块,可以减少书写的长度
Java代码 复制代码 收藏代码
  1. require 'webrick'
  2. include WEBrick
  3. # 可以不用 server = WEBrick::HTTPServer.new(...)
  4. server = HTTPServer.new(...)


那么load有什么用呢?
Rails程序优先使用load而不是require来载入程序库
在development模式下,当你修改一段代码后,不用重启服务器,你的代码更改会被自动reload,这就是load的作用
而如果你使用require的话,多次require并不会起作用
对大型Ruby程序如Rails,使用多个文件和require/load/include令你的程序非常容易组织和划分模块