Ruby:如何在不创建新实例的情况下检查实例方法的参数?

2024-05-20

在 Ruby 1.9.2 中,您可以使用 method(:symbol) 检查任何方法的参数。如何在不创建新车的情况下检查 Car#initialize 方法?

class Car
  def initialize(fuel_type, passenger_capacity, door = 3)
    puts "TODO"
  end
end

Car.new(nil,nil).method(:initialize).parameters
  #=> [[:req, :fuel_type], [:req, :passenger_capacity], [:opt, :door]]

Instance_eval 不起作用:

Car.instance_eval { |x| p x.method(:initialize).parameters } #=> [[:rest]]

Car.instance_method(:initialize).parameters
# => [[:req, :fuel_type], [:req, :passenger_capacity], [:opt, :door]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:如何在不创建新实例的情况下检查实例方法的参数? 的相关文章

随机推荐