【Ruby3.x】IO::foreach()メソッドの使い方
foreachメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
IOクラスのforeachメソッドは、指定されたファイルを1行ずつ読み込み、その各行に対して与えられたブロック内の処理を実行するメソッドです。
このメソッドは、ファイル全体を一度にメモリに読み込むのではなく、1行ずつ順次処理を進めるため、非常に大きなサイズのファイルを扱う際にメモリ使用量を効率的に抑え、システムの負荷を低減しながら高速な処理を実現できるのが特長です。主な用途としては、ログファイルの解析、CSVファイルの内容処理、大量のテキストデータからの情報抽出などが挙げられます。
ファイル名(パス)を必須の引数として指定し、任意で行の区切り文字や、行末の改行文字を自動的に削除するchomp: trueオプションなどを設定できます。もしブロックを渡さずにforeachメソッドを呼び出した場合は、ファイルを1行ずつ読み込むためのEnumeratorオブジェクトを返します。これにより、必要に応じてeachやmapなどのイテレータと組み合わせて、より柔軟なデータ処理フローを構築することが可能です。
このメソッドは、ファイル操作の基本でありながら強力なツールとして、システムの信頼性とパフォーマンスを向上させるために広く利用されています。
構文(syntax)
1IO.foreach(path) { |line| # ... 処理 ... }
引数(parameters)
path, sep = $/, **options
- path: 処理対象のファイルパスまたはIOオブジェクト
- sep = $/ : 区切り文字。デフォルトは改行文字($/)
- **options: その他のオプションを指定するハッシュ(キーと値のペア)
戻り値(return)
IO
IOオブジェクト自身が返されます。これにより、メソッドチェーンを構築することが可能になります。