1
我正在閱讀Ruby項目的源代碼。如果有一個名爲a.rb的文件。我看到有人需要它:要求'a'和要求'a.rb'有什麼區別?
require 'a'
但有人做:
require 'a.rb'
這些是一樣的嗎?
我正在閱讀Ruby項目的源代碼。如果有一個名爲a.rb的文件。我看到有人需要它:要求'a'和要求'a.rb'有什麼區別?
require 'a'
但有人做:
require 'a.rb'
這些是一樣的嗎?
require 'a.rb'
僅搜索a.rb
,同時也require 'a'
搜索a.rb
,a.so
...
根據Kernel#require
documentation:
如果文件名的擴展名爲「.RB」它被加載爲源文件 ;如果擴展名爲「.so」,「.o」或「.dll」,或當前平臺上的默認共享庫擴展名,則Ruby會將該共享庫作爲Ruby擴展名加載。否則,Ruby會嘗試將 「.rb」,「.so」等添加到名稱中直到找到。如果找不到名爲 的文件,則會引發LoadError。