2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Ruby】外部ファイル読み込み require・require_relative・load・autoloadの違い

Last updated at Posted at 2020-03-29

外部ファイル読み込みの違いを明確にしたかったのでまとめてみました。

require("絶対パスまたは相対パス")

ライブラリや外部ファイルを絶対パス、相対パスで読み込む(1回のみ読み込み)

require_relative("相対パス")

ライブラリや外部ファイルを相対パスで読み込む(1回のみ読み込み)
 

load("絶対パスまたは相対パス")

ライブラリや外部ファイルをファイルを絶対パス、相対パスで読み込む(再読み込み、拡張子は省略できない)
loadはrequireやrequire_relativeよりも再読み込みするため遅くなる
 

autoload("クラス/モジュールの定数", "絶対パスまたは相対パス")

定数を最初に参照した時に第2引数を絶対パス、相対パスで読み込む(1回のみ読み込み)
クラス・モジュールの遅延ロードを実現

まとめ

モジュール関数 パスの仕方 読み込み回数    遅延ロード       
require 絶対・相対パス 1回 ✖︎
require_relative 相対パス 1回 ✖︎
load 絶対パス、相対パス 再読み込み ✖︎
autoload 絶対パス、相対パス 1回

参考
Ruby 2.7.0 リファレンスマニュアル

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?