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

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

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

作成日: 更新日:

基本的な使い方

getsメソッドは、StringIOオブジェクトから文字列データを一行ずつ読み込むことを実行するメソッドです。StringIOクラスは、メモリ上の文字列データをファイルのように扱うためのクラスであり、このgetsメソッドは、IOクラスのgetsメソッドと同様に、その仮想的なファイルからデータを読み出す役割を担います。

具体的には、StringIOオブジェクトの内部ポインタが現在指す位置から、次の改行文字(\n)まで、または引数で指定された区切り文字(セパレータ)までを一行として読み込み、その文字列を返します。読み込まれた文字列には、通常、末尾に区切り文字も含まれます。StringIOオブジェクト内のデータが終端に達しており、これ以上読み込むデータがない場合は、nilが返されます。これにより、プログラムはデータの終端を検知し、順次処理を継続することができます。

このメソッドは、実際のファイルアクセスを伴わずに、メモリ上の文字列データに対してファイル入出力と同様の行単位の読み込み操作を行いたい場合に役立ちます。例えば、テストコードで入力をシミュレートする際や、既存のファイル処理ロジックを文字列データに適用したい場合などに活用され、柔軟なデータ処理を可能にします。

構文(syntax)

1require 'stringio'
2
3sio = StringIO.new("Line 1\nLine 2\n")
4line = sio.gets
5puts line

引数(parameters)

sep = $/, chomp: false

  • sep: 区切り文字。デフォルトは改行文字($/)。
  • chomp: trueの場合、区切り文字を削除する。デフォルトはfalse。

戻り値(return)

Stringまたはnil

StringIOクラスのgetsメソッドは、バッファから1行を読み込み、文字列として返します。バッファの終端に達してこれ以上読み込む行がない場合は、nilを返します。

関連コンテンツ

関連プログラミング言語