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)中引入一个模块,这个类从而也具备了这个模块的方法。