이 코드는 왜 Proc.Call에 따라 NIL을 생산합니까?
-
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
NIL의 원인은 무엇입니까?
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
해결책
@sepp2k가 주석에서 지적한 것처럼 s
값을 반환하지 않으며puts
보고 nil
, 그래서 nil
Proc의 마지막 진술이므로 자동으로 반환 값이됩니다.
Proc를 할당 한 후 해당 암호 출력과 유사하게 마지막 문의 반환 값으로 터미널에 인쇄됩니다. s
.
제휴하지 않습니다 StackOverflow