我想检索构造函数中的参数名称.给出以下代码:
class Something
def self.do_something(a, b); end
def initialize(a, b); end
end
Run Code Online (Sandbox Code Playgroud)
我明白了:
Something.method(:do_something).parameters
# => [[:req, :a], [:req, :b]]
Something.method(:new).parameters
# => [[:rest]]
Run Code Online (Sandbox Code Playgroud)
为什么Method#parameters返回[[:rest]]的情况下new,如何获取构造函数参数?
如果您询问参数Something::new,您将获得参数Something::new.如果你想知道参数Something#initialize,你需要问Something#initialize:
Something.instance_method(:initialize).parameters
# => [[:req, :a], [:req, :b]]
Run Code Online (Sandbox Code Playgroud)