将proc调用为Ruby中的哈希键

时间:2014-05-03 19:31:11

标签: ruby hash proc

指 - bizzare way of calling Procs?

@BroiSatse非常感谢答案。另外需要澄清的一点 - 如果需要传递额外的参数(将代码添加为param_1 and _2),该怎么办:

def callbacks(param_1, param_2, procs)
  procs[:var_1].call(param_1)
  puts "Proceed"
  procs[:var_2].call(param_2)
end

callbacks(arg_1, arg_2, :var_1 => Proc.new {block_1},
         :var_2 => Proc.new {block_2})

首先是什么?即将首先执行def callbacks - 参数(arg_1, arg_2)代替params(param_1, param_2)或procs(:var_1, :var_2)的内容?知道正确编码params行是很重要的 - def callbacks(param_1, param_2, procs)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我无法看到你认为这可能会产生什么影响,但是从左到右评估参数,并且YARV中的参数按顺序被推入堆栈。但显然,它们都是在被调用方法开始执行之前传递的。