Mar*_*nos 3 ruby reflection parameters
可能重复:
在Ruby反射中获取参数名称
是否可以获取方法的参数名称?
示例:
def method_called(arg1, arg2)
puts my_method.inspect
end
Run Code Online (Sandbox Code Playgroud)
我想知道应该调用什么方法(my_method)来获得以下输出:
["arg1", "arg2"]
Run Code Online (Sandbox Code Playgroud)
Jör*_*tag 10
在Ruby 1.9.2中,您可以通过以下方式轻松获取任何参数列表Proc
(当然也可以是任何Method
或者UnboundMethod
)Proc#parameters
:
def foo(a, b=nil, *c, d, &e); end
p method(:foo).parameters
# => [[:req, :a], [:opt, :b], [:rest, :c], [:req, :d], [:block, :e]]
Run Code Online (Sandbox Code Playgroud)
格式是符号对的数组:类型(必需,可选,休息,块)和名称.
对于您想要的格式,请尝试
method(:foo).parameters.map(&:last).map(&:to_s)
# => ['a', 'b', 'c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1255 次 |
最近记录: |