如何将更多的代码块传递给Ruby中的函数?

jsb*_*eno 6 ruby

我不知道任何Ruby,现在正在阅读一些文档.在阅读有关使用代码块和"yield"关键字之后我怀疑是否可以将多个代码块传递给函数,并且在被调用函数中随意使用这两个代码块.

Sim*_*tti 9

您可以一次只传递一个块,但块实际上是Proc实例,您可以传递任意数量的实例作为参数.

def mymethod(proc1, proc2, &block)
  proc1.call
  yield if block_given?
  proc2.call
end

mymethod(Proc.new {}, Proc.new {}) do
  # ...
end
Run Code Online (Sandbox Code Playgroud)

但是,它很少有意义.