我刚开始学习块和Ruby类使用method_missing
,而且我发现通式为执行的与块的method_missing在Ruby中
def method_missing(sym, *args, &block)
我的问题是,如果有可能执行输出中为&block
。例如:
class Foo
def method_missing(sym, *args, &block)
puts "#{sym} was called with #{args} and returned #{block.call(args)}"
end
end
bar = Foo.new
bar.test(1,2,3, lambda {|n| n + 2})
有没有办法让这个工作,使块返回一个新的数组?
@CarySwoveland链接似乎不工作? – reichertjalex
[这里](http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/)是一个很好的文章,关于块,procs和lambdas之间的差异。 (punkinbread:链接应该现在就OK。) –