如何将多个块传递给ruby中的方法?

参见英文答案 > Passing multiple code blocks as arguments in Ruby1个
我可以将多个参数和最后一个块参数传递给方法.但是当我尝试传递多个块时它会显示错误.我想知道怎么做?
def abc(x,&a)
  x.times { a.call("hello") }
end

abc(3) {|a| puts "#{a} Sana"}
abc(1,&proc{|a| puts "#{a} Sana"})

但是低于定义会给出错误

def xyz(x,&a,&b)
  puts x
  a.call
  b.call
end

解决方法

你可以使用Proc:
def xyz(x,a,&b)
  puts x
  a.call
  b.call
end

xyz(3,Proc.new { puts 'foo' }) { puts 'bar' }

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...