本文简要介绍ruby语言中  Proc.(params,...)  的用法。
用法
(params,...) → obj
别名:call
调用块,使用接近方法调用语义的东西将块的参数设置为 params 中的值。返回块中计算的最后一个表达式的值。
a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } }
a_proc.call(9, 1, 2, 3)    #=> [9, 18, 27]
a_proc[9, 1, 2, 3]         #=> [9, 18, 27]
a_proc.(9, 1, 2, 3)        #=> [9, 18, 27]
a_proc.yield(9, 1, 2, 3)   #=> [9, 18, 27]
请注意,prc.() 使用给定的参数调用 prc.call()。隐藏“call”是语法糖。
对于使用  lambda  或 ->() 创建的 proc,如果将错误数量的参数传递给 proc,则会生成错误。对于使用  Proc.new  或  Kernel.proc  创建的 procs,额外的参数被静默丢弃,缺少的参数设置为 nil。
a_proc = proc {|a,b| [a,b] }
a_proc.call(1)   #=> [1, nil]
a_proc = lambda {|a,b| [a,b] }
a_proc.call(1)   # ArgumentError: wrong number of arguments (given 1, expected 2)
另见 Proc#lambda? 。
相关用法
- Ruby Proc.eql?用法及代码示例
 - Ruby Proc.prc ==用法及代码示例
 - Ruby Proc.ruby2_keywords用法及代码示例
 - Ruby Proc.new用法及代码示例
 - Ruby Proc.lambda?用法及代码示例
 - Ruby Proc.arity用法及代码示例
 - Ruby Proc.curry用法及代码示例
 - Ruby Proc.prc << g用法及代码示例
 - Ruby Proc.parameters用法及代码示例
 - Ruby Proc.binding用法及代码示例
 - Ruby Proc.prc >>用法及代码示例
 - Ruby Proc.prc[params,...]用法及代码示例
 - Ruby Proc.call用法及代码示例
 - Ruby Process.groups用法及代码示例
 - Ruby Process.wait2用法及代码示例
 - Ruby Process.getpgrp用法及代码示例
 - Ruby Process.setproctitle用法及代码示例
 - Ruby Process.setrlimit用法及代码示例
 - Ruby Process.uid用法及代码示例
 - Ruby Process.pid用法及代码示例
 - Ruby Process.detach用法及代码示例
 - Ruby Process.maxgroups用法及代码示例
 - Ruby Process.clock_gettime用法及代码示例
 - Ruby Process.exec用法及代码示例
 - Ruby Process.groups=用法及代码示例
 
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Proc.(params,...)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
