外部ファイル読み込みの違いを明確にしたかったのでまとめてみました。
require("絶対パスまたは相対パス")
ライブラリや外部ファイルを絶対パス、相対パスで読み込む(1回のみ読み込み)
require_relative("相対パス")
ライブラリや外部ファイルを相対パスで読み込む(1回のみ読み込み)
load("絶対パスまたは相対パス")
ライブラリや外部ファイルをファイルを絶対パス、相対パスで読み込む(再読み込み、拡張子は省略できない)
loadはrequireやrequire_relativeよりも再読み込みするため遅くなる
autoload("クラス/モジュールの定数", "絶対パスまたは相対パス")
定数を最初に参照した時に第2引数を絶対パス、相対パスで読み込む(1回のみ読み込み)
クラス・モジュールの遅延ロードを実現
まとめ
モジュール関数 | パスの仕方 | 読み込み回数 | 遅延ロード |
---|---|---|---|
require | 絶対・相対パス | 1回 | ✖︎ |
require_relative | 相対パス | 1回 | ✖︎ |
load | 絶対パス、相対パス | 再読み込み | ✖︎ |
autoload | 絶対パス、相対パス | 1回 | ○ |