【Ruby3.x】IO::lineno()メソッドの使い方
linenoメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
linenoメソッドは、IOクラスのインスタンスが現在処理している行番号を取得するメソッドです。IOクラスのオブジェクトは、ファイルや標準入力、標準出力など、データの読み書きを行う対象を表します。このメソッドを使用することで、例えばファイルからデータを1行ずつ読み込んでいる際に、現在処理しているのが何行目であるかを確認できます。
IOオブジェクトが新しく作成されたとき、またはファイルポインタがファイルの先頭にリセットされたとき(例えばrewindメソッドを使用した場合)、行番号は通常1に初期化されます。その後、getsメソッドやreadlineメソッドなど、行単位でデータを読み込むメソッドが呼び出されるたびに、自動的に行番号が1ずつ増加します。これにより、プログラマはファイル処理の進捗状況を容易に追跡し、特定の行番号に基づいて処理を分岐させることが可能になります。
このメソッドで取得される行番号は、ファイルの先頭から数えた論理的な行番号です。また、lineno=メソッドを使用することで、任意の行番号を明示的に設定することも可能です。ファイルの内容を解析するスクリプトや、ログファイルを処理する際など、現在の処理位置を正確に把握したい場合に非常に有用な機能です。
構文(syntax)
1file = File.open("example.txt", "r") # example.txtは存在するファイルと仮定 2file.gets # 最初の行を読み込む 3puts file.lineno 4file.close
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer
現在読み込んでいるIOストリームの現在の行番号を返します。行番号は0から始まります。