Question

C:\>irb
irb(main):001:0> s = Proc.new { puts "Hello" }
=> #<Proc:0x04051780@(irb):1>
irb(main):002:0> s.call
Hello
=> nil

Qu'est-ce qui cause le néant?

ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
Était-ce utile?

La solution

s ne renvoie pas de valeur, Comme l'indique @ sepp2k dans le commentaire, met renvoie nil Ainsi, nil devient automatiquement la valeur de retour, car il s'agit de la dernière instruction du processus.

Il est simplement imprimé sur le terminal en tant que valeur de retour de la dernière instruction, similaire à cette sortie cryptée après avoir affecté le proc à s .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top