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

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

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

作成日: 更新日:

基本的な使い方

eof?メソッドは、RubyのCSVクラスのインスタンスにおいて、現在の読み込み位置が処理対象のCSVデータの終端に到達しているかどうかを確認するために実行するメソッドです。このメソッドは、これ以上読み込むべきCSVレコードが存在しない場合にtrueを返し、まだ読み込むべきレコードが残っている場合にはfalseを返します。

CSVクラスはファイルや文字列など、様々なソースからCSVデータを読み込むことができますが、eof?メソッドはそれらすべてのケースにおいて機能します。具体的には、すべてのCSVレコードが読み取られ、次にCSV#shiftメソッドなどを呼び出しても有効なデータが返されない状態になったときにtrueを返します。これは、データソースの物理的な終端に到達しているだけでなく、CSVの論理的なレコードがすべて処理された状態を示します。

このメソッドは、CSVデータをレコード単位で繰り返し処理する際に、ループの終了条件を決定するために特に役立ちます。例えば、「while !csv_object.eof?」のように記述することで、データが存在する限り処理を継続し、すべてのレコードが処理された時点で安全にループを終了させることができます。これにより、存在しないデータを誤って読み込もうとすることによるエラーを回避し、効率的かつ安定したデータ処理を実現します。プログラムがデータの終端を正確に把握することで、無駄な処理を防ぎ、堅牢なアプリケーション開発に貢献します。

構文(syntax)

1require 'csv'
2require 'stringio'
3
4# メモリ上にCSVデータを準備
5csv_data = "header1,header2\nvalue1,value2\nvalue3,value4"
6csv = CSV.new(StringIO.new(csv_data))
7
8# 最初の行を読み込む
9csv.shift
10
11# 2番目の行(最後の行)を読み込む
12csv.shift
13
14# これ以上読み込む行がないため、終端に達しているかを確認
15csv.eof?

引数(parameters)

引数なし

引数はありません

戻り値(return)

Boolean

CSVファイルの終端に到達したかどうかを示す真偽値を返します。trueなら終端、falseなら終端ではありません。

関連コンテンツ

関連プログラミング言語