51Testing软件测试论坛

标题: inclusde load require extend的区别 [打印本页]

作者: Spark.lee    时间: 2009-8-25 17:39
标题: inclusde load require extend的区别
1.include VS require
    include同大多数其他的编程语言一样跑另一个文件(run another file.)。它还可以追踪到在过去中您刚才要求的,不会要求相同的文件两次。去运行其他文件没有额外的功能,你可以用load的方法。
  这个include方法把所有的方法从另一个模块,包括他们到当前的模块。这是一个language-level件事与file-level和要求。include方法的主要途径是和其他“类”扩展模块(通常被称为mix-ins)。
    include主要用来将一个模块插入(mix)到一个类或者其它模块。这个模块的方法在引入它的类或模块中以函数的形式调用(没有一个receiver)。这个指令运行时会执行Module.append_features方法
2.require vs load

   LOAD 一般是用在irb中的
         装载并执行aFileName文件,文件搜索方法同上面的require。wrap是可选参数,默认为false,如果设为true,则这个文件将在匿名模块下运行,从而包括调用者的名字空间。任何aFileName里面的局部变量在装载它的环境下是不可用的。
   require 是用于脚本中
eg:加载A B2个类  其中A中使用了B类 B中也使用了A类
require ---加载的文件不需要后缀(.*),加载文件时只会加载一次 就是说他加载了A B一次
load ---加载的时候 就会加载A 然后在去加载B 加载b 然后在去加载A  就这样循环了。。。。

3.require load include

include :主要作用于.rb格式等文件的模块
require :主要作用于.rb格式等文件
load:同require一样作用于.rb格式等文件

4.extend

extend 用来在一个对象(object,或者说是instance)中引入一个模块,这个类从而也具备了这个模块的方法。

[ 本帖最后由 Spark.lee 于 2009-8-25 18:00 编辑 ]
作者: chop123    时间: 2009-8-25 17:48
顶哦,偶是沙发Ing
作者: nbkhic    时间: 2009-8-27 16:15
include有“糅合”功能,可以当接口用。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2