Ruby中的LOAD与Required有什么不同?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

load和require之间有没有主要差异(在Ruby on Rails应用中)?或者他们都有相同的功能?

提问于
用户回答回答于

require在所有已定义的搜索路径中搜索库,并将.rb或.so添加到您输入的文件名中。它还确保库只包含一次。因此,如果应用程序需要库A和B以及库B请求库A,则A只会加载一次。

但是load需要添加库的全名,它被载入每次调用load,即使它已经是在内存中。

用户回答回答于

另一个区别Kernel#requireKernel#loadKernel#load需要,允许你所装载的代码包装成一个匿名空模块的可选的第二个参数。

首先,load编辑代码很容易脱离模块,只需访问全局命名空间,即他们仍然可以修改类似的内容class ::String; def foo; end end

扫码关注云+社区