Stringを使用するだけでなく、RubyのStringIOを使用するのが適切と考えられるのはいつですか?
" RubyのStringIOクラスとは実際には? "で強調されているように、それらの基本的な違いを理解していると思います。しかし、これは実際には何を意味するのでしょうか?
単純にStringを使用しても効果が得られない場合に、StringIOを使用する実用的な例は何ですか?
基本的には、文字列をIOオブジェクトのように見えるため、StringIOという名前になります。
StringIO クラスにはread
およびwrite
メソッドがあるため、ファイルまたはソケットから読み取りおよび書き込みを行うように設計されたコードの一部に渡すことができます。文字列があり、ファイルコードをテストするために、ファイルのように見せたい場合は便利です。
def foo_writer(file)
file.write "foo"
end
def test_foo_writer
s = StringIO.new
foo_writer(s)
raise "fail" unless s.string == "foo"
end