【Ruby3.x】ARGF定数の使い方
ARGF定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
ARGF定数は、コマンドライン引数で指定されたファイル、または標準入力からデータを読み込むための仮想的な入力ストリームを表す組み込み定数です。この定数は、Rubyスクリプトが複数のファイルを順序立てて処理する際や、コマンドライン引数が与えられない場合に標準入力から読み込む際に非常に有用です。
ARGFは、あたかも単一のIOオブジェクトであるかのように振る舞い、each_lineやreadといったIOクラスのメソッドを利用してデータを読み取ることができます。スクリプトにコマンドライン引数としてファイル名が渡された場合、ARGFはそれらのファイルを指定された順序で自動的に開き、その内容を読み込みます。一つのファイルの読み込みが完了すると、自動的に次のファイルへと切り替わり、すべての引数で指定されたファイルを処理します。
もしコマンドライン引数が指定されなかった場合、または引数としてハイフン(-)が渡された場合は、ARGFは自動的に標準入力($stdin)からデータを読み込むようになります。この仕組みにより、開発者はファイルからの入力と標準入力からの入力を同じコードで透過的に処理することが可能となり、スクリプトの汎用性と柔軟性が大幅に向上します。例えば、複数のログファイルをまとめて処理したり、UNIXのパイプで渡された出力を受け取って処理するスクリプトを簡単に記述できます。
ARGFは、コマンドライン引数のリストを保持するARGVとは異なり、それらのファイルや標準入力の中身そのものを提供するオブジェクトとして機能します。これにより、システム管理ツールやテキスト処理ユーティリティの作成において強力な機能を提供します。
構文(syntax)
1ARGF.each_line do |line| 2 puts line 3end
引数(parameters)
引数なし
引数はありません
戻り値(return)
ARGF.class
ARGF.class は、ARGF オブジェクトのクラスである ARGF を返します。これは、標準入力やファイル群をまとめて扱うためのオブジェクトの型を示しています。