requireとloadの違い
requireとloadの違い
毎回忘れるので備忘録として残します。
Rubyのrequire
Rubyでrequireを利用する時は以下のようなケースです。
1. 組み込みライブブリ以外(標準ライブラリ)を読み込むとき。 2. 自分で作成したRubyプログラムを組み込む場合。
1. 組み込みライブブリ以外(標準ライブラリ)を読み込むとき。
構文)
require ライブラリ名
例)
#Dateクラスは組み込みライブラリではないので、そのままでは使用できない Date.today#=>NameError:uninitializedconstantDate #dateライブラリを読み込むとDateクラスが使えるようになる require'date' Date.today#=>#<Date:20170407((2457851j,0s,0n),+0s,2299161j)>
2. 自分で作成したRubyプログラムを組み込む場合。
Rubyを実行しているディレクトリからの相対パス、または絶対パスで指定します。
同じディレクトリの場合)
require'./sample.rb'
Rubyのload
loadを使う機会はあまりないですが、requireとの使い分けをする必要があるので内容を記載します。
requireは1回しか、ライブラリやrbファイルを読み込みません。
例)
#自分で書いたプログラムを読み込む require'./sample'#=>true #不具合があったので、sample.rbを修正する #しかし、もう一度requireしてもすでに読み込み済みなので修正が反映されない require'./sample'#=>false
こういう場合はloadを利用すべきです、loadは毎回無条件で指定したファイルを読み込むことができます。
load'./sample.rb'#=>true #loadを使うと無条件に再読み込みできる(なのでファイルの変更が反映される) load'./sample.rb'#=>true
※ ちなみにloadの場合は.rbを省略出来ないです。