ruby - 参数处理为 "rigid"是什么意思?

标签 ruby

取自documentation对于 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

关于ruby - 参数处理为 "rigid"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41388995/

相关文章:

sql - 将散列存储在Sqlite表中。我要使用序列化吗?

ruby - 如何通过 ruby​​/micel 邮件删除服务器上的特定邮件?

ruby-on-rails - passenger-install-apache2-module 在 ruby​​ 2.0.0 中不工作

ruby - 如何在远程计算机上的 Ruby ssh exec 上强制执行持续时间或超时

ruby - 为什么Ruby中没有 `elsunless`语句?

php - PHP 中的 Ruby 映射函数?

ruby - 每个月用日期对象迭代

ruby - 条件语句出现在表达式之前还是之后有关系吗?

python - 以编程方式检查网站的 SSL 证书是否过期

ruby - 如何在 Ruby 中返回值或有条件地引发错误?