当前位置 : 主页 > 编程语言 > ruby >

ruby – 论证处理是“僵化的”是什么意思?

来源:互联网 收集:自由互联 发布时间:2021-06-23
摘自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
摘自07#for Proc#lambda?:

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
网友评论