【Ruby3.x】load()関数の使い方
load関数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
load関数は、指定されたRubyスクリプトファイルを読み込み、その内容を実行する関数です。この関数は、プログラムの実行中に別のRubyファイルを動的に組み込みたい場合や、外部のスクリプトを現在のプログラムフローに含めたい場合に使用されます。
load関数にファイルパスを文字列として渡すことで、そのパスに存在するスクリプトが現在のコンテキストで実行されます。ファイルパスは、絶対パスまたは現在の実行ディレクトリからの相対パスで指定する必要があります。例えば、load('path/to/my_script.rb')と記述すると、my_script.rbファイル内のコードが実行されます。
Rubyには同様の機能を持つrequire関数がありますが、load関数には重要な違いがあります。require関数が同じファイルを一度しか読み込まないのに対し、load関数は呼び出されるたびに指定されたファイルを毎回読み込み直し、その内容を再度実行します。この特性は、開発中にスクリプトの変更をすぐに反映させたい場合や、特定のファイルを意図的に複数回実行したい場合に便利です。
さらに、load関数は第二引数にtrueを渡すことで、読み込むスクリプトを新しい匿名モジュール内で実行できます。これにより、読み込まれるファイル内で定義されたメソッドや定数が、呼び出し元のプログラムのグローバルな名前空間に影響を与えるのを防ぐことができます。この機能は、特にライブラリやプラグインなど、独立した環境でコードを実行し、名前空間の衝突を避けたい場合に役立ちます。
構文(syntax)
1load('filename.rb')
引数(parameters)
filename, wrap = false, freeze: false
- filename: ロードするRubyプログラムのファイルパスを指定する文字列
- wrap: trueを指定すると、ロードされたコードは匿名モジュール内で実行されます
- freeze: trueを指定すると、ロードされたオブジェクトは凍結されます
戻り値(return)
true
loadメソッドは、指定されたファイルをRubyのプログラムとして読み込み、実行します。ファイルが正常に読み込まれて実行された場合、trueを返します。