【Ruby3.x】CSV::Row::each_pair()メソッドの使い方
each_pairメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
each_pairメソッドは、CSV::Rowオブジェクトが持つヘッダと値のペアを一つずつ取り出して、指定された処理を実行するメソッドです。CSV::Rowは、CSVファイルから読み込まれた一行を表す特別なオブジェクトで、その行の各データは対応するヘッダ名と値の組み合わせ(ペア)として管理されています。
このeach_pairメソッドは、CSVの行を構成するこれらのヘッダと値のペアを、効率的に繰り返し処理するために利用されます。メソッドを呼び出す際にブロック({...}やdo...end)を渡すと、CSV::Row内の各ヘッダ(キー)とその対応する値が順番に取り出され、そのブロックに引数として渡されます。開発者はブロック内で、渡されたヘッダと値に対して、データの表示、特定の条件に基づくフィルタリング、値の加工など、任意の操作を実行できます。例えば、row.each_pair { |header, value| puts "#{header}: #{value}" } のように記述することで、行のすべてのデータを手軽に確認したり、特定の形式で出力したりすることが可能です。
もしブロックを渡さずにeach_pairメソッドを呼び出した場合、このメソッドはEnumeratorオブジェクトを返します。Enumeratorは、反復処理を遅延実行する機能を提供し、mapやselectといったEnumerableモジュールの多様なメソッドと組み合わせて、より柔軟かつ強力なデータ操作を行うことを可能にします。このように、each_pairメソッドは、CSVデータから必要な情報を抽出し、変換し、分析するための強力な基盤を提供する、非常に有用なツールです。
構文(syntax)
1require 'csv' 2 3CSV::Row.new(["name", "age"], ["Alice", 30]).each_pair do |key, value| 4 puts "Key: #{key}, Value: #{value}" 5end
引数(parameters)
引数なし
引数はありません
戻り値(return)
self または Enumerator
CSV::Row#each_pair は、CSVの各行のキーと値のペアを順番に処理するためのイテレータを返します。ブロックが与えられた場合は、そのブロックを各ペアに対して実行し、CSV::Rowオブジェクト自身を返します。ブロックが与えられなかった場合は、Enumeratorオブジェクトを返します。