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とloadの違いについて

Posted at

requireとloadの違いについてまとめておく。

requireの場合

test.rb
module Lib
  $num += 1
end
test1.rb
$num = 0
1..10.times do |n|
  require './test.rb'
end
puts $num
1

上記ではrequireを使用してtest.rbをロードしている。
requireの場合は、ファイルのロードは1度のみ行われるため、1が表示される。

loadの場合

test.rb
module Lib
  $num += 1
end
test1.rb
$num = 0
1..10.times do |n|
  load './test.rb'
end
puts $num
10

loadを使用してtest.rbの読み込みを行なっている。
loadは無条件にファイルをロードすることができるため、10回処理が行われて10となる。

requireとloadの違いまとめ

requireは同じファイルは1度のみロード。loadは無条件にロード可能。
requireは.rbや.soを自動補完できる。loadは補完はしない。
requireはライブラリのロード。loadは設定ファイルの読み込みに用いることができる。

以上

2
1
0

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?