我想在对象中获取类方法。请参阅以下示例 我有一个班级“user.rb”
class User
def say_name
end
def walk(p1)
end
def run(p1, p2)
end
end
我写了以下代码
require 'user.rb'
a = User.new
arr = a.public_methods(all = false)
上面的代码将返回方法名称,但我的问题是我想获取带参数的方法名称
def def run(p1, p2)
end
我想获取方法名称(“run”)及其参数名称(p1,p2)或参数count(2)
有人可以帮助我,提前谢谢欢呼声
sameera
答案 0 :(得分:5)
User.new.method(:run).arity # => 2
答案 1 :(得分:1)
如果你想要参数,那么http://github.com/rdp/arguments就是你的朋友
答案 2 :(得分:0)
你想:
User.new.method(:run).parameters # => [[:req, :p1], [:req, :p2]]
req
表示它是必填字段。您可能获得的其他值包括:
def run(p1 = nil)
=> [[:opt, :p1]]
def run(*p1)
=> [[:rest, :p1]]
def run(&p1)
=> [[:block, :p1]]
def run(p1:)
=> [[:key, :p1]]
def run(p1: nil)
=> [[:keyopt, :p1]]
def run(**p1)
=> [[:keyrest, :p1]]