有时候会这样写代码
def test1
puts "start test"
p= Proc.new { puts "hello test" ; return} // lambda {puts "hello test";return}也是可以的。
p.call
puts "end test"
end
test
我记得好像在书中有说过,ruby 是解释性语言,边解释边执行。那么在解释“p= Proc.new { puts "hello test" ; return}”的时候,也就执行了 return,为什么还可以继续执行 p.call?难道是我对 return 的理解不够吗?
还有一种是将“Proc.new { puts "hello test" ; return} ”包装到另一个方法
def procbuilder( )
Proc.new { puts "hello test" ; return}
end
p=procbuilder( )
这两种方式,有何异同了?还请高手详解