Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】CSV::Row::fields()メソッドの使い方

fieldsメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

fieldsメソッドは、CSVファイルの1行を表すCSV::Rowオブジェクトから、その行に含まれるすべてのフィールドの値を配列として取得するメソッドです。RubyのCSVライブラリでは、CSVファイルを読み込んだ際に、個々の行がCSV::Rowクラスのインスタンスとして扱われます。このCSV::Rowオブジェクトは、CSVのヘッダ情報(もしあれば)と、それに対応する実際の行データを内部的に保持しています。

fieldsメソッドを呼び出すと、そのCSV::Rowインスタンスが保持している実際のデータ部分のみを抽出し、それらを読み込まれた順序で並んだ配列として返します。具体的には、CSVの各セルに格納されている値が、配列の要素として格納されます。このメソッドは、例えばCSVファイルにヘッダ行が存在しない場合や、ヘッダの名前ではなく、純粋に行のデータそのものをインデックス順にまとめて処理したい場合に特に便利です。返される配列を利用することで、Rubyの豊富な配列操作メソッドと組み合わせて、行全体のデータを効率的に加工したり、別のデータ構造に変換したりすることが可能になります。システムエンジニアを目指す初心者の方にとって、CSVファイルから直接データ値を取り出して、プログラム内で操作する基本的な手法を理解する上で、fieldsメソッドは非常に直感的で重要な役割を果たします。

構文(syntax)

1require 'csv'
2
3row = CSV.parse("HeaderA,HeaderB\nValue1,Value2", headers: true)[0]
4row.fields

引数(parameters)

*headers_and_or_indices

  • headers_and_or_indices: 取得したいフィールドのヘッダー名(String)またはインデックス(Integer)を可変長引数として指定します。指定しない場合は、すべてのフィールドの値が取得されます。

戻り値(return)

Array

CSV::Rowオブジェクトが持つ、各フィールド(列)の値を配列として返します。この配列は、CSVのヘッダー行があればヘッダー名をキーとしたハッシュのように、なければインデックスをキーとした配列のようにアクセスできます。

関連コンテンツ

関連プログラミング言語