【Ruby3.x】CSV::Table::[]()メソッドの使い方
[]メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
CSV::Table#[]メソッドは、CSV::Tableオブジェクトが保持する表形式のデータから、特定の行やカラム、または個別のセルの値にアクセスするために使用されるメソッドです。このメソッドは、引数として指定された値に応じて、異なる種類のデータを返します。
具体的には、引数に整数を渡した場合、その整数をインデックス(0から始まる行番号)とみなし、対応する行全体をCSV::Rowオブジェクトとして返します。このCSV::Rowオブジェクトは、さらに[]メソッドを使ってカラム名(文字列やシンボル)やカラムのインデックスを指定することで、その行の特定のセルの値を取得することができます。
また、引数に文字列やシンボルを渡した場合、それをCSVのヘッダ行に対応するカラム名とみなし、そのカラムに含まれるすべてのセルの値を配列として返します。これにより、特定のカラム全体のデータを一度に取得することが可能です。
このように、CSV::Table#[]メソッドは、CSVデータを表として扱っている際に、目的のデータに柔軟かつ直感的にアクセスするための重要な手段を提供します。これは、CSVファイルを読み込み、その内容をプログラム内で効率的に操作する際に非常に役立ちます。
構文(syntax)
1require 'csv' 2 3csv_data = <<~CSV 4 id,name,city 5 1,Alice,New York 6 2,Bob,London 7CSV 8 9table = CSV.parse(csv_data, headers: true) 10table[0]['name']
引数(parameters)
index_or_header
- index_or_header: 行のインデックス(0から始まる整数)またはヘッダー名(文字列)を指定します。指定されたインデックスまたはヘッダーに対応する行を返します。
戻り値(return)
CSV::Row | Array
CSV::Tableオブジェクトに対して、指定したインデックスまたはキー(ヘッダー名)を用いて要素にアクセスします。インデックスを指定した場合はCSV::Rowオブジェクト、キーを指定した場合はそのキーに対応する値の配列を返します。