uso strings pedir palabras mayusculas imprimir funcion datos crear contar como ruby string stringio

pedir - strings en ruby



¿Cuáles son las ventajas de usar StringIO en Ruby en lugar de String? (2)

¿Cuándo se considera apropiado usar StringIO de Ruby en lugar de solo usar String?

Creo que entiendo la diferencia fundamental entre ellos, como se destaca en " ¿Qué es realmente la clase StringIO de ruby? ", Que StringIO permite leer y escribir desde / hacia una cadena de forma orientada a la secuencia. ¿Pero qué significa esto prácticamente?

¿Cuál es un buen ejemplo de un uso práctico para usar StringIO cuando simplemente usar String realmente no lo cortaría?


Básicamente, hace que una cadena se vea como un objeto IO, de ahí el nombre StringIO.

La clase StringIO tiene métodos de read y write , por lo que puede pasarse a partes de su código que fueron diseñadas para leer y escribir desde archivos o sockets. Es bueno si tienes una cadena y quieres que se vea como un archivo para probar tu código de archivo.

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


Realmente me gusta StringIO para el caso de uso de agregar texto línea por línea sin tener que usar "/n" una y otra vez. Por ejemplo, en lugar de esto:

s = '''' s << "/n" << "some text on a new line" s << "/nthis is pretty awkward" s = "#{s}/neven more ugly!"

puedo hacer esto

s = StringIO.open do |s| s.puts ''adding newlines with puts is easy...'' s.puts ''and simple'' s.string end

Que es mucho más limpio. No es necesario usar la forma de bloque de String.IO , puede crear un objeto así: s = StringIO.new pero, independientemente, asegúrese de tener en cuenta que se accede a la cadena real a través del método StringIO#string .