Ruby块调用

时间:2017-10-05 13:09:56

标签: ruby

Ruby中的两个例子:

def invoke_block(&block)
  block.call
end

def invoke_block(&block)
  instance_eval(&block)
end

为什么instance_eval需要&

1 个答案:

答案 0 :(得分:4)

  

为什么instance_eval需要&

因为instance_eval接受字符串或块。它不接受Proc对象(在这种情况下是block所指的名称)。因此,您使用运算符&将proc解压缩到块中。