How to require a block in Ruby?

前端 未结 3 1407
长情又很酷
长情又很酷 2021-01-01 13:47

Is there any built in way to require that a block be passed to a Ruby method? I realize I can just raise an exception if block_given? is false, but is there so

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-01 14:36

    Simply by using yield.

    If you include yield in a method, and a block is not given, it throws an error.

    Put this in a file and run it:

    def needs_block
        yield
    end
    
    needs_block
    

    It will throw an error like this:

    LocalJumpError: no block given
        from (irb):14:in `needs_block'
        from (irb):16
    

提交回复
热议问题