代码之家  ›  专栏  ›  技术社区  ›  rui

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

  •  7
  • rui  · 技术社区  · 14 年前

    def foo(&b1, &b2)
      b1.call
      b2.call
    end
    
    foo() { puts "one" } { puts "two" }
    
    2 回复  |  直到 14 年前
        1
  •  14
  •   Mark Rushakoff    14 年前

    你不能通过多个街区 那个 传递倍数 proc lambda

    irb(main):005:0> def foo(b1, b2)
    irb(main):006:1>   b1.call
    irb(main):007:1>   b2.call
    irb(main):008:1> end
    => nil
    irb(main):009:0> foo(Proc.new {puts 'one'}, Proc.new {puts 'two'})
    one
    two
    => nil
    irb(main):010:0>
    
        2
  •  2
  •   horseyguy    14 年前

    Ruby 1.9中的语法更可爱:

    foo ->{puts :one}, ->{puts :two}