获取构造函数的参数名称

Oma*_*uez 3 ruby reflection

我想检索构造函数中的参数名称.给出以下代码:

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,如何获取构造函数参数?

Jör*_*tag 6

如果您询问参数Something::new,您将获得参数Something::new.如果你想知道参数Something#initialize,你需要问Something#initialize:

Something.instance_method(:initialize).parameters
# => [[:req, :a], [:req, :b]]
Run Code Online (Sandbox Code Playgroud)