在 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]]
关于Ruby:如何在不创建新实例的情况下检查实例方法的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717912/