require和load的作用是相同的,都是用来加载指定的类库,区别在于,require可以载入某个a.rb文件,并且可以省略.rb的后缀,并且,require只会在第一次的时候加载,如果以后再require的话,则不会加载。load的作用和require相同,区别在于,load在加载指定文件的时候必须用全名,不能省略后缀,而且,load每次都会重新加载,并不像require那样,只加载一次以后就不再加载了。此外,require用来加载库文件,load用来加载配置文件。
require:如果给定的值不是一个绝对路径,那么将会在$:中查找。如果给定的名字带有.rb,则作为源文件载入;如果扩展名为.so,.o,.dll等(根据不同平台),Ruby将这些作为扩展程序来载入;否则,Ruby会自动尝试在给定的文件名后面加.rb,.so,.dll等。已经载入的库会放到数组$"中,已经在$"里的则不会被重复装载
include是用来mix-in某个模块的,如果一个类include某个模块的话,那么这个模块内的方法就作为该类的实例方法来使用。
extned是用来实现继承用的,如果一个类extend莫个模块的话,那么这个模块内的方法会作为该类的类方法使用。