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は設定ファイルの読み込みに用いることができる。
以上