小编Mar*_*iej的帖子

Ruby:前向接收器,参数和跨越块的阻塞

给出这样的代码:

p = proc do |*args, &block|
  p self
  p args
  p block[] if block
end

q = proc do |*args, &block|
  p 'before'
  instance_exec(*args, &p)
end

o = Object.new
o.define_singleton_method(:my_meth, q)
o.my_meth(1, 2) { 3 }
Run Code Online (Sandbox Code Playgroud)

我怎样才能完全从呼叫转发pq在保持q的接收器?基本上我也想打印3,但是instance_exec,像所有红宝石方法一样,只需要一个块.是否有可能不改变p,这样我就可以使用pq互换(的想法是让q有时包p).

ruby proc

8
推荐指数
1
解决办法
125
查看次数

标签 统计

proc ×1

ruby ×1