【Ruby3.x】CSV::Row::[]()メソッドの使い方
[]メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
[]メソッドは、CSV::Rowオブジェクトから、指定された条件に基づいてCSVの列のデータを取り出すためのメソッドです。このメソッドを使用することで、CSVファイルの1行を表すCSV::Rowインスタンスから、特定の列の値を簡単に取得できます。
このメソッドには主に三つの方法でアクセスできます。一つ目は、列のヘッダ名(カラム名)を指定する方法です。文字列またはシンボルでヘッダ名を渡すと、そのヘッダ名に対応する列のデータが返されます。たとえば、row["商品名"]のように記述することで、「商品名」というヘッダを持つ列の値を取得できます。もし指定したヘッダ名が見つからない場合は、nilが返されます。
二つ目は、列のインデックス(番号)を指定する方法です。整数値で0から始まる列の位置を渡すと、その位置のデータが返されます。たとえば、row[0]と記述すると、最初の列の値を取得できます。これは配列の要素にアクセスするのと同様の感覚で利用できます。指定したインデックスがCSVの列の範囲を超えている場合も、nilが返されます。
三つ目は、インデックスの範囲を指定する方法です。Rangeオブジェクトを使って、取得したい列の開始インデックスと終了インデックスを指定すると、その範囲に含まれる全ての列の値が配列として返されます。たとえば、row[0..2]と記述すると、0番目から2番目までの列の値が配列で得られます。
このように、[]メソッドはCSV::Rowオブジェクトが持つデータへの柔軟なアクセス手段を提供し、CSVデータの処理を直感的かつ効率的に行うことを可能にします。取得される値は通常、文字列として扱われます。
構文(syntax)
1require 'csv' 2 3headers = ["name", "age", "city"] 4values = ["Alice", 30, "New York"] 5row = CSV::Row.new(headers, values) 6 7puts row["name"]
引数(parameters)
header_or_index, minimum_index = nil
- header_or_index: 行のヘッダー名(文字列)または列のインデックス(整数)
- minimum_index = nil: 検索を開始する最小のインデックス(整数)。指定しない場合は、先頭から検索します。
戻り値(return)
String?
CSV::Rowオブジェクトで、指定されたフィールド名またはインデックスに対応する値が文字列として返されます。フィールドが存在しない場合はnilが返される可能性があります。