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

如何使用“method”而不是代码块创建纤程

  •  0
  • JustWe  · 技术社区  · 7 年前

    与其这样做,

    @fiber = Fiber.new do
      # ...
    end
    

    我想做这样的事:

    def test
      yield
      # ...
    end
    
    def create(process)
      @fiber = Fiber.new(process)
    end
    
    create(method(:test))
    

    我怎样才能 Fiber 代码看起来像完成的部分?

    1 回复  |  直到 7 年前
        1
  •  4
  •   ndnenkov    7 年前

    只需将方法转换为块:

    def test
      Fiber.yield 2.71
      Fiber.yield 3.14
      Fiber.yield 42
    end
    
    def create(&process)
      @fiber = Fiber.new(&process)
    end
    
    create(&method(:test))
    
    @fiber.resume # => 2.71
    @fiber.resume # => 3.14
    @fiber.resume # => 42
    
    推荐文章