摘自07#for Proc#lambda?: Returns true for a Proc object for which argument handling is rigid. Such procs are typically generated by lambda. 什么是“严格的论证”处理? 如果传递错误数量的参数,Lambdas将引发Argu
Returns true for a Proc object for which argument handling is rigid. Such procs are typically generated by lambda.
什么是“严格的论证”处理?
如果传递错误数量的参数,Lambdas将引发ArgumentError,Proc.new不会.例:
lam = ->(x){ "OK" }
lam.lambda? # => true
lam.call # => ArgumentError
lam.call(1) # => OK
proc = Proc.new { |x| "OK" }
proc.lambda? # => false
proc.call # => OK
proc.call(1) # => OK
proc.call(1,2,3,4,5,6,7,8,9) # => OK
