Question

Si vous avez vu mes questions précédentes, vous auriez déjà savoir que je suis un grand nuby quand il vient à Ruby. Alors, j'ai découvert ce site qui est destiné à la programmation C, mais je pensais que ce que l'on peut faire en C, doit être possible en Ruby (et plus facile à lire aussi).

Le défi consiste à imprimer un tas de chiffres. J'ai découvert cette méthode nifty .upto () et j'ai utilisé un bloc (et comprendre réellement son but). Cependant, dans IRb, je suis un comportement inattendu.

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

Je ne sais pas où => 1 provient de: S dois-je faire cela autrement? J'attends d'avoir ce résultat:

1 2 3 4 5 6 7 8 9 10

Merci pour vos réponses, commentaires!

Était-ce utile?

La solution

  

Je ne sais pas où => 1 vient de

Ne vous inquiétez pas. Par défaut imprime de irb la valeur de retour de l'exécution de la méthode.

Même si vous n'écrivez pas la déclaration de return (comme en C par exemple) Ruby retourne la valeur de la dernière instruction calculée.

Dans ce cas, il était 1

C'est tout.

Par exemple essayer:

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


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

Autres conseils

"=> 1" est de la CISR, pas votre code. Après chaque déclaration que vous tapez dans la CISR, elle imprime le résultat de cette déclaration après une demande « => ».

Essayez d'imprimer une nouvelle ligne dans votre fonction:

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

Alors ça va ressembler à ceci:

irb> q.run
1 2 3 4 5 6 7 8 9 10
  => nil
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top