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

Ruby中Require、Load、Include和Extend的区别

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

原文:http://ionrails.com/2009/09/19/ruby_require-vs-load-vs-include-vs-extend/

Require:

require方法让你加载一个库,并且只加载一次,如果你多次加载会返回false。只有当你要加载的库位于一个分离的文件中时才有必要使用require。使用时不需要加扩展名,一般放在文件的最前面:

    require ‘test_library’

Load:

load用来多次加载一个库,你必须指定扩展名:

   load ‘test_library.rb’

Include:

当你的库加载之后,你可以在你的类定义中包含一个module,让module的实例方法和变量成为类本身的实例方法和类变量,它们mix进来了。根据锄头书,include并不会把module的实例方法拷贝到类中,只是做了引用,包含module的不同类都指向了同一个对象。如果你改变了module的定义,即使你的程序还在运行,所有包含module的类都会改变行为。

   module Log
       def class_type
           “This class is of type: #{self.class}”
       end
   end
   class TestClass
       include Log
   end
   tc=TestClass.new.class_type    #=>This class is of type: TestClass

Extend:

extend会把module的实例方法作为类方法加入类中:

   module Log
       def class_type
           “This class is of type: #{self.class}”
       end
   end
   class TestClass
       extend Log
   end
   tc=TestClass.class_type       #=>This class is of type: TestClass


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
ruby中特殊的全局变量发布时间:2022-07-14
下一篇:
使用Ruby来实现批量更新AD中字段发布时间: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