Provide value for self when using Proc#call

后端 未结 3 578
既然无缘
既然无缘 2021-02-04 01:05

When using Proc#call to call a lambda function in Ruby, self always ends up with the value that it had when the function was defined, rather than the value it has w

3条回答
  •  夕颜
    夕颜 (楼主)
    2021-02-04 01:41

    You may want to use instance_exec because it allows you to pass arguments to the block whereas instance_eval does not.

    def eval_my_proc_with_args(*args, &block)
      instance_exec(*args, &block)
    end
    

提交回复
热议问题