لماذا لا تنتج هذا الرمز على شيء بعد Proc.call؟
-
07-07-2019 - |
سؤال
C:\>irb
irb(main):001:0> s = Proc.new { puts "Hello" }
=> #<Proc:0x04051780@(irb):1>
irb(main):002:0> s.call
Hello
=> nil
ما الذي يسبب شيء؟
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
المحلول
<الصورة> s
لا ترجع قيمة، ث> و @sepp2k يشير في التعليق، puts
يعود nil
، لذلك nil
تلقائيا تصبح قيمة الإرجاع لأن ذلك هو البيان الأخير في بروك.
وانها مجرد يحصل المطبوعة إلى محطة كقيمة عودة البيان الأخير، مماثلة لتلك المخرجات خفي بعد تعيين بروك لs
.
لا تنتمي إلى StackOverflow