• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[转]ruby中require和load的区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

转自:http://blog.csdn.net/feigeswjtu/article/details/51176626

众所周知,ruby里引入其他文件的方式有两种,require和load,但是它们有一定的区别,这里详细说明一下。

require 方法允许我们载入一个库并且会阻止你加载多次。当我们使用 require 重复加载同一个library时,require方法 将会返回 false。当我们要载入的库在不同的文件时才能使用 require 方法,举个例子:
 
[ruby] view plain copy
 
 
  1. <pre name="code" class="ruby">#contant_dome.rb  
  2. ContantDome = 3  
  3. puts "ContantDome = #{ContantDome}"  


我们require多次看看效果:
[ruby] view plain copy
 
 
  1. irb(main):001:0> require('/home/webuser/Public/contant_dome.rb')  
  2. ContantDome = 3  
  3. => true  
  4. irb(main):002:0> ContantDome  
  5. => 3  
  6. irb(main):003:0> require('/home/webuser/Public/contant_dome.rb')  
  7. => false  

load

load 方法基本和 require 方法功能一致,但它不会跟踪要导入的库是否已被加载。因此当重复使用 load 方法时,也会载入多次。大部分情况我们都会使用 require 来代替 load。但当我们需要每次都要加载时候我们才会使用 load, 例如模块的状态会频繁地变化, 我们使用 load 进行加载,获取最新的状态。我们也举个例子看看:
[ruby] view plain copy
 
 
  1. irb(main):001:0>  load('/home/webuser/Public/contant_dome.rb')  
  2. ContantDome = 3  
  3. => true  
  4. irb(main):002:0>  load('/home/webuser/Public/contant_dome.rb')  
  5. /home/webuser/Public/contant_dome.rb:1: warning: already initialized constant ContantDome  
  6. /home/webuser/Public/contant_dome.rb:1: warning: previous definition of ContantDome was here  
  7. ContantDome = 3  
  8. => true  
我们修改文件里面的内容:
 
[ruby] view plain copy
 
 
  1. #contant_dome.rb  
  2. ContantDome = 4  
  3. puts "ContantDome = #{ContantDome}"  

[ruby] view plain copy
 
 
  1. irb(main):003:0>  load('/home/webuser/Public/contant_dome.rb')  
  2. /home/webuser/Public/contant_dome.rb:1: warning: already initialized constant ContantDome  
  3. /home/webuser/Public/contant_dome.rb:1: warning: previous definition of ContantDome was here  
  4. ContantDome = 4  
  5. => true  
  6. irb(main):004:0> ContantDome  
  7. => 4  

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Centos安装Ruby2.2.3发布时间:2022-07-14
下一篇:
mac上安装ruby发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap