是否有可能lambda
, proc
, method
或红宝石中其他类型的块,以屈服于另一个块?
就像是...
a = lambda {
puts 'in a'
yield if block_given?
}
a.call { puts "in a's block" }
这不起作用...它只会产生
in a
=> nil
有没有办法让块调用块?
我不确定你是否可以这样做,但类似的事情是:
在 Ruby 1.8.6 中:
a = lambda { |my_proc|
puts 'in a'
my_proc.call
}
a.call(lambda { puts "in a's block" })
在 Ruby 1.9.1 中,您可以使用块参数
a = lambda { |&block|
puts 'in a'
block.call
}
a.call { puts "in a's block" }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)