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!

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top