Domanda

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

Cosa causa lo zero?

ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
È stato utile?

Soluzione

s non restituisce un valore, Come sottolinea @ sepp2k nel commento, mette restituisce zero , quindi nil diventa automaticamente il valore restituito poiché questa è l'ultima istruzione nel proc.

Viene appena stampato sul terminale come valore di ritorno dell'ultima istruzione, simile a quell'output criptico dopo aver assegnato proc a s .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top