【Ruby3.x】StringScanner::empty?()メソッドの使い方
empty?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
empty?メソッドは、StringScannerクラスのインスタンスが操作する文字列が空であるかどうかを過去には確認するために使用されていましたが、現在のRuby 3のバージョンでは常に真(true)を返すメソッドです。
このメソッドは、Rubyの以前のバージョンで導入されましたが、その振る舞いがStringScannerオブジェクトの実際の状態と一致しないことが多いため、現在では「非推奨(deprecated)」とされています。具体的には、StringScannerオブジェクトがどのような状態であっても、スキャン対象の文字列がまだ残っていても、すでにすべて読み終えていても、このempty?メソッドを呼び出すと必ずtrueが返されます。
したがって、StringScannerオブジェクトが実際に空の状態であるか、またはスキャン可能な文字列が残っていないかを正確に判断する目的でこのメソッドを使用することは適切ではありません。もしStringScannerがスキャンすべき文字列をすべて読み終えたかどうか、つまり文字列の終端に到達したかを確認したい場合は、代わりにeos?(end of string?)メソッドを使用するのが正しい方法です。empty?メソッドは将来的に削除される可能性もあるため、使用を避けることを強く推奨します。
構文(syntax)
1require 'strscan' 2 3scanner = StringScanner.new("hello ruby") 4scanner.scan(/hello ruby/) 5puts scanner.empty?
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません