2010-10-06 81 views
0

先從以下情形:獲取/設置參數的默認值動態

class Foo 
    def bar(baz={}) 
    p baz 
    end 
end 

foo = Foo.new 
p meth = foo.method(:bar) # => #<Method: Foo#bar> 
p meth.parameters # => [[:opt, :baz]] 

所以我可以計算出該方法bar是可選的,但我怎麼找到該方法的默認值({}) ?

回答

2

只是這樣做:

foo.bar 

既然你是不是在巴茲值傳遞,它會打印出的默認值。

雖然,我打賭你想要的東西,將適用於任何方法。我知道的唯一一致的方法是查看源代碼。

答案:有人寫了一個腳本來做它here

但是,查看腳本以試圖瞭解它是如何將默認值拉出來會讓我的頭部受傷。

+0

Wowza ..我覺得在Ruby中獲取默認值會更容易。不過謝謝,我會讀完這個瘋狂並試圖弄清楚它=) – RyanScottLewis 2010-10-07 07:16:38