Warum produziert dieser Code eine Null einen Proc.call folgen?
-
07-07-2019 - |
Frage
C:\>irb
irb(main):001:0> s = Proc.new { puts "Hello" }
=> #<Proc:0x04051780@(irb):1>
irb(main):002:0> s.call
Hello
=> nil
Was bewirkt, dass die Null?
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
Lösung
Wie @ sepp2k im Kommentar weist darauf hin, s
keinen Wert zurückgibt, puts
kehrt nil
, so nil
automatisch der Rückgabewert wird da, dass die letzte Anweisung in der proc ist.
Es wird nur an das Terminal als Rückgabewert der letzten Anweisung gedruckt, ähnlich dem kryptischen ausgegeben, nachdem Sie ordnen die proc s
.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow