Ruby: contadores, contando e incrementando
Pregunta
Si usted ha visto mis preguntas anteriores, se había ya saben que soy un gran nuby cuando se trata de Ruby. Así, descubrí este sitio web que está destinado a la programación en C, pero pensé que todo lo que uno puede hacer en C, debe ser posible en Ruby (y más fácil de leer también).
El reto es imprimir un montón de números. Descubrí este método ingenioso .upto () y utilicé un bloque (y en realidad la comprensión de su propósito). Sin embargo, en el IRB, tengo un comportamiento inesperado.
class MyCounter
def run
1.upto(10) { |x| print x.to_s + " " }
end
end
irb(main):033:0> q = MyCounter.new
=> #<MyCounter:0x5dca0>
irb(main):034:0> q.run
1 2 3 4 5 6 7 8 9 10 => 1
No tengo idea de donde el => 1 proviene de: S debo hacer esto de otra manera? Estoy esperando a tener este resultado:
1 2 3 4 5 6 7 8 9 10
Gracias por sus respuestas, comentarios y sugerencias!
Solución
No tengo idea de donde el => 1 proviene de
No se preocupe. Por defecto impresiones irb
el valor de la ejecución del método de regresar.
Incluso si usted no escribe la declaración return
(como en C, por ejemplo) Rubí devuelve el valor de la última instrucción computarizada.
En este caso se trataba de 1
Eso es todo.
Por ejemplo intento:
class WhereIsTheReturn
def uh?
14 * 3 # no return keyword
end
end
whereIsIt = WhereIsTheReturn.new
hereItIs = whereIsIt.uh?
print "Here it is : #{hereItIs}\n"
Otros consejos
El "=> 1" es de IRB, no su código. Después de cada declaración que se teclea en el IRB, se imprime el resultado de esa declaración después de un "=>" del sistema.
Trate de imprimir una nueva línea en su función:
def run
1.upto(10) { |x| print x.to_s + " " }
print "\n"
end
A continuación, se verá como la siguiente:
irb> q.run
1 2 3 4 5 6 7 8 9 10
=> nil