我不了解导入库或模块的三种方法之间的区别。据我目前的了解,
load 'file.rb'
会将外部文件的内容导入当前文件,而:
require 'file.rb'
会执行相同的功能,但不会导入已经导入的文件。
require_relative 'file.rb'
与相似require
,但是它将加载仅在当前目录中的文件,而require
将使用搜索路径$:
来查找文件。毫无疑问,我对这三种机制的理解是有缺陷的。有人可以澄清一下吗?
load
无论您是否已导入文件,都希望在导入文件时使用。require
或require_relative
仅在尚未导入文件时才使用它。
由此可以得出结论,当导入的文件是分析对象(数据文件)时,使用前者,而后者则用于提供程序中要使用的某些功能(程序,库,框架的一部分)。
虽然require
只能处理相对于的路径$:
,require_relative
但扩展名也可以处理相对于当前目录的路径。require_relative
是的超集require
,require
可以分配(尽管require_relative
是使用编写的require
,因此如果require
要分配,则必须重写)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句