是否可以将多个块传递给Ruby中的方法?

前端之家收集整理的这篇文章主要介绍了是否可以将多个块传递给Ruby中的方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
就像是:
  1. def foo(&b1,&b2)
  2. b1.call
  3. b2.call
  4. end
  5.  
  6. foo() { puts "one" } { puts "two" }

解决方法

您不能以这种方式传递多个块,但您可以传递多个 proc或lambda对象:
  1. irb(main):005:0> def foo(b1,b2)
  2. irb(main):006:1> b1.call
  3. irb(main):007:1> b2.call
  4. irb(main):008:1> end
  5. => nil
  6. irb(main):009:0> foo(Proc.new {puts 'one'},Proc.new {puts 'two'})
  7. one
  8. two
  9. => nil
  10. irb(main):010:0>

猜你在找的Ruby相关文章