【Ruby3.x】CSV::Row::field()メソッドの使い方
fieldメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
fieldメソッドは、CSV::Rowオブジェクトから特定のフィールド(列)の値を取得するメソッドです。CSV::Rowクラスは、CSVファイルの一行を表すオブジェクトであり、このメソッドを使用することで、その行に含まれる個々のデータにアクセスできます。
引数には、フィールドのインデックス(0から始まる数値)またはヘッダー名(文字列)を指定します。例えば、row.field(0)と記述するとその行の最初の列の値を、row.field("Name")と記述すると"Name"というヘッダーに対応する列の値を取得できます。
指定されたインデックスやヘッダー名に対応するフィールドが存在しない場合は、nilを返します。このメソッドは、CSVデータをプログラム内で扱いやすくするための基本的な機能として提供されており、CSVファイルから必要な情報を抽出する際に頻繁に利用されます。また、このメソッドは[]演算子と等価であり、row[0]やrow["Name"]といった形式でも同様にフィールド値を取得することが可能です。
構文(syntax)
1require 'csv' 2 3csv_data = "Name,Age\nAlice,30" 4table = CSV.parse(csv_data, headers: true) 5row = table[0] 6 7# インデックスを使ってフィールドを取得 8puts row.field(0) 9 10# ヘッダ名(文字列)を使ってフィールドを取得 11puts row.field("Age")
引数(parameters)
header_or_index, minimum_index = nil
- header_or_index: 取得したいフィールドのヘッダー名 (String) またはインデックス (Integer)
- minimum_index = nil: 複数マッチした場合に、どのインデックスまでを返すかを指定します。nil の場合は、最初に見つかったフィールドのみを返します。
戻り値(return)
String | nil
CSV の行から指定されたフィールドの値を取得します。フィールドが存在しない場合は nil を返します。