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

【Ruby3.x】CSV::shift()メソッドの使い方

shiftメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

shiftメソッドは、RubyのCSVクラスのインスタンスに対して呼び出すことで、CSVデータから次の1行を取り出す処理を実行するメソッドです。このメソッドは、CSVオブジェクトが内部に保持しているCSVデータ(ファイルや文字列から読み込まれたもの)の中から、まだ読み込まれていない先頭の行を配列として返します。

具体的には、shiftメソッドが呼び出されるたびに、CSVデータの次の1行が配列の形式で提供されます。この際、返された行はCSVオブジェクトの内部から「消費」され、次にshiftメソッドを呼び出した際にはその次の行が対象となります。これにより、CSVデータを1行ずつ順番に、かつ効率的に処理していくことが可能になります。

返される配列の各要素は、その行の各カラム(フィールドやセルとも呼ばれるデータの区切り)のデータに対応し、通常は文字列として扱われます。例えば、CSVの1行が「商品名,価格,数量」であれば、["商品名", "価格", "数量"]のような配列が取得できます。すべての行が読み込まれ、これ以上取得できるデータがない場合には、shiftメソッドはnilを返します。

このメソッドは、CSVファイルのヘッダー行をスキップしてデータ部分だけを処理したい場合や、CSVデータを1行ずつ順番にデータベースに登録するといった、行単位での順次処理が必要な場面で非常に役立ちます。CSVオブジェクトの内部状態(読み取り位置)が変更されるため、繰り返し呼び出すことでCSVデータを最初から最後まで漏れなく処理できます。

構文(syntax)

1require 'csv'
2
3csv_string = "col1,col2\nval1,val2\nval3,val4"
4csv_object = CSV.parse(csv_string)
5first_row = csv_object.shift

引数(parameters)

引数なし

引数はありません

戻り値(return)

Array または nil

CSVオブジェクトの先頭から1行を削除し、その行を配列として返します。CSVオブジェクトが空の場合はnilを返します。

関連コンテンツ

関連プログラミング言語