动态获取/设置参数的默认值

从以下场景开始:

class Foo def bar(baz={}) p baz end end foo = Foo.new p meth = foo.method(:bar) # => # p meth.parameters # => [[:opt, :baz]] 

所以我可以弄清楚方法bar是可选的,但是如何找到该方法的默认值( {} )?

这样做:

 foo.bar 

由于您没有为baz传递值,因此它将打印出默认值。

虽然,我打赌你想要一些适用于任何方法的东西。 我所知道的唯一一致方法是查看源代码。

答案:有人在这里写了一个脚本。

但是,查看脚本以尝试理解它如何拉出默认值会让我头疼。