2015-05-15 36 views
0

假設我有:如何在Ruby中打印所有方法參數?

def foo(bar, baz) puts "Called foo, bar = #{bar}, baz = #{baz}" blah_blah end

我能爲一個編輯宏是這樣做的:

def foo(bar, baz) puts "<the answer to this question>" blah_blah end

,並得到同樣的調試結果?

回答

0

有一種方法裏面的一些元信息提供:

def foo(bar, baz=2) 
    p __method__ #=> : foo 
    p method(__method__).parameters # => [[:req, :bar], [:opt, :baz]] 
end 
foo(1, 2) 


def foo(a: "bar",b:) 
    p method(__method__).parameters # => [[:keyreq, :b], [:key, :a]] 
end 
foo(a: 1,b: 2) 
相關問題