Rubino: contatori, il conteggio e incrementando
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!
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