Domanda

Se avete visto le mie domande precedenti, si era già sai che io sono un grande nuby quando si tratta di Ruby. Così, ho scoperto questo sito web che è destinato per la programmazione C, ma ho pensato che tutto ciò che si può fare in C, deve essere possibile in Ruby (e più leggibile troppo).

La sfida è quella di stampare un po 'di numeri. Ho scoperto questo metodo ingegnoso .upto () e ho usato un blocco (ed effettivamente capire il suo scopo). Tuttavia, in IRB, ho avuto qualche comportamento imprevisto.

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

Non ho idea di dove il => 1 proviene da: S devo fare questo altrimenti? Mi aspetto di avere questo risultato:

1 2 3 4 5 6 7 8 9 10

Grazie per le vostre risposte, commenti e feedback!

È stato utile?

Soluzione

  

Ho idea di dove l'=> 1 proviene da

Non si preoccupi. Da stampe predefinite irb il valore della esecuzione del metodo di ritorno.

Anche se non si scrive la dichiarazione return (come in C per esempio) Rubino restituisce il valore dell'ultima dichiarazione calcolata.

In questo caso è stato 1

Questo è tutto.

Per esempio try:

class WhereIsTheReturn
    def uh?
        14 * 3 # no return keyword
    end
end


whereIsIt = WhereIsTheReturn.new
hereItIs = whereIsIt.uh?
print "Here it is : #{hereItIs}\n"

Altri suggerimenti

Il "=> 1" è da IRB, non il vostro codice. Dopo ogni affermazione si digita nella IRB, si stampa il risultato di questa affermazione, dopo una "=>" pronta.

Provare a stampare una nuova riga nella funzione:

def run 
  1.upto(10) { |x| print x.to_s + " " }
  print "\n"
end

Poi guarderò in questo modo:

irb> q.run
1 2 3 4 5 6 7 8 9 10
  => nil
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top