Ruby プロジェクトのソース コードを読んでいます。a.rb という名前のファイルがある場合。そして、誰かがそれを次のように必要としているのを見ます:
require 'a'
しかし、誰かがします:
require 'a.rb'
これらは同じですか?
Ruby プロジェクトのソース コードを読んでいます。a.rb という名前のファイルがある場合。そして、誰かがそれを次のように必要としているのを見ます:
require 'a'
しかし、誰かがします:
require 'a.rb'
これらは同じですか?
require 'a.rb'
のみを検索しa.rb
、、、 ...require 'a'
も検索します。a.rb
a.so
Kernel#require
ドキュメントによると:
ファイル名の拡張子が「.rb」の場合、ソース ファイルとしてロードされます。拡張子が「.so」、「.o」、「.dll」、または現在のプラットフォームのデフォルトの共有ライブラリ拡張子である場合、Ruby は共有ライブラリを Ruby 拡張子としてロードします。それ以外の場合、Ruby は、名前が見つかるまで「.rb」、「.so」などを名前に追加しようとします。指定されたファイルが見つからない場合、LoadError が発生します。