Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在阅读一个 Ruby 项目的源代码。如果有一个名为 a.rb 的文件。我看到有人要求它:
require 'a'
但有人这样做:
require 'a.rb'
这些是一样的吗?
require 'a.rb'只搜索a.rb, 同时require 'a'也搜索a.rb, a.so, ...
a.rb
a.so
根据Kernel#require文件:
Kernel#require
如果文件名具有扩展名“.rb”,则作为源文件加载;如果扩展名是“.so”、“.o”或“.dll”,或者是当前平台上的默认共享库扩展名,Ruby 会将共享库作为 Ruby 扩展名加载。否则,Ruby 会尝试在名称中添加“.rb”、“.so”等,直到找到为止。如果找不到名为的文件,则会引发 LoadError。