【Ruby3.x】CSV::Table::[]=()メソッドの使い方
[]=メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
[]=メソッドは、CSV::Tableクラスにおいて、CSVデータが格納された表形式のデータに行を追加または既存の行を更新するメソッドです。
CSV::Tableは、CSVファイルの内容を行と列からなる表として扱うためのクラスです。この[]=メソッドは、特定の行番号を指定し、その位置に新しいデータを行として設定する際に使用されます。
このメソッドでは、第一引数に行のインデックス(0から始まる整数)を取り、第二引数にはその行に設定したいデータ(通常は配列、またはCSV::Rowオブジェクト)を渡します。例えば、table[0] = ["新しい", "データ"]のように記述して、インデックス0の行に新しいデータを代入します。
指定されたインデックスに既にデータが存在する場合、既存のデータは新しいデータによって完全に上書きされます。また、テーブルの現在の行数を超えるインデックスを指定した場合には、テーブルの行数を拡張し、指定された位置に新しい行を追加することが可能です。その際、間に存在しない行は自動的にnil値で埋められます。
この機能により、プログラミングを通じてCSVデータを柔軟に操作し、表の途中のデータを修正したり、計算結果の行を最後に追加したりするなど、特定の行の内容変更や新しいデータの追加が容易になります。システムエンジニアを目指す方にとって、データ処理の基本となるCSVデータの操作において非常に役立つメソッドです。
構文(syntax)
1require 'csv' 2 3table = CSV::Table.new([ 4 CSV::Row.new(['header1', 'header2'], ['value1a', 'value1b']), 5 CSV::Row.new(['header1', 'header2'], ['value2a', 'value2b']) 6]) 7 8table[0] = ['new_value1', 'new_value2']
引数(parameters)
index_or_header, value
- index_or_header: 取得・設定したい行のインデックス(整数)またはヘッダー名(文字列、シンボル)
- value: 設定したい値
戻り値(return)
CSV::Row
CSV::Tableオブジェクトの指定されたインデックス(行)に、指定されたCSV::Rowオブジェクトを代入します。代入されたCSV::Rowオブジェクト自身が戻り値として返されます。