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

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

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

作成日: 更新日:

基本的な使い方

linenoメソッドは、StringIOオブジェクトの現在の行番号を取得するメソッドです。

StringIOクラスは、ファイルにデータを読み書きするのと同じように、メモリ上の文字列データを扱うためのクラスです。実際のファイルシステムを使わずに、一時的なテキストデータを効率的に処理したい場合に非常に便利です。

このlinenoメソッドは、StringIOオブジェクトが現在指し示している読み取り位置が何行目であるかを、整数値として取得するために使用します。StringIOオブジェクトが作成された直後の初期状態では、行番号は0に設定されています。その後、getsreadlineといったメソッドを使用してStringIOオブジェクトからデータを1行ずつ読み進めるたびに、検出された改行文字 (\n) に応じてlinenoの値は自動的に1ずつ増加します。

例えば、メモリ上にあるログファイルのような長いテキストデータを解析する際に、現在処理している部分が全体の何行目にあたるのかを把握したい場合に、linenoメソッドが役立ちます。これにより、ファイル処理で行番号を追跡するのと同様に、メモリ上のテキストデータに対しても現在の処理行を簡単に管理できるようになります。また、lineno=メソッドを利用して、手動で現在の行番号を設定することも可能です。この機能は、特定の行から処理を再開したい場合などに柔軟な制御を可能にします。

構文(syntax)

1require 'stringio'
2
3sio = StringIO.new("最初の行\n二番目の行")
4sio.gets # 最初の行を読み込むと、行番号が1になります
5sio.lineno # 現在の行番号を取得します

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

現在読み込んでいるストリームの行番号を整数で返します。

関連コンテンツ

関連プログラミング言語