【Ruby3.x】CSV::Row::delete_if()メソッドの使い方
delete_ifメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
delete_ifメソッドはCSV::Rowオブジェクト内のデータから、特定の条件に合致する要素を削除するメソッドです。このメソッドは、CSVファイルの一行を表すCSV::Rowクラスに属しており、行内の各フィールド(列のデータ)を操作するために使用されます。delete_ifメソッドはブロックを受け取り、行に含まれる各フィールドを「ヘッダー名」と「そのフィールドの値」のペアとして、一つずつブロックに渡します。ブロックがtrue(真)を返した場合、そのペアに対応するフィールドがCSV::Rowオブジェクトから削除されます。例えば、特定の値を持つ列や、特定のヘッダー名を持つ列を条件に基づいて除去することが可能です。メソッドが実行された結果、行のデータが変更された場合には、変更後のCSV::Rowオブジェクト自身を返します。もし、どのフィールドも条件に合致せず削除が行われなかった場合は、nilを返します。このメソッドは破壊的な操作であり、呼び出し元のCSV::Rowオブジェクトの内容を直接変更することに注意が必要です。元のCSV::Rowオブジェクトを残したまま変更を行いたい場合は、別の方法を検討してください。
構文(syntax)
1require 'csv' 2 3row = CSV::Row.new(['id', 'name', 'age'], [1, 'Alice', 30]) 4row.delete_if do |key, value| 5 key == 'id' 6end
引数(parameters)
引数なし
引数はありません
戻り値(return)
self
CSV::Rowオブジェクト自身を返します。このメソッドは、条件に合致する要素を削除した後の、変更されたCSV::Rowオブジェクトを参照するために使用できます。