摘自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