要求'a'和要求'a.rb'之间有什么区别?

时间:2013-10-29 08:35:35

标签: ruby

我正在阅读Ruby项目的源代码。如果有一个名为a.rb的文件。我看到有人要求它:

require 'a'

但有人这样做:

require 'a.rb'

这些是一样的吗?

1 个答案:

答案 0 :(得分:4)

require 'a.rb'仅搜索a.rb,而require 'a'也搜索a.rba.so,...


根据Kernel#require documentation

  

如果文件名的扩展名为“.rb”,则将其作为源加载   文件;如果扩展名为“.so”,“。o”或“.dll”,则为默认值   在当前平台上共享库扩展,Ruby加载   共享库作为Ruby扩展。否则,Ruby会尝试添加   “.rb”,“。so”等等,直到找到名称。如果文件名为   无法找到,将引发LoadError。