Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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オブジェクトを参照するために使用できます。

関連コンテンツ

関連プログラミング言語