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

标签 ruby

在 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/

相关文章:

ruby - 为什么 Ruby 的 bcrypt 库在散列中以明文形式包含盐?

ruby - 解析与操作的可变范围和顺序 : Assignment in an "if"

ruby - ruby 中的安全 Websocket 客户端

ruby-on-rails - Rails 不记录请求

ruby - 检查具有特定扩展名的文件的目录

javascript - 服务器端 Ruby 进程与客户端 Javascript 之间的通信

ruby - "convenience"创建哈希的方法

ruby-on-rails - Make 未被识别为内部或外部命令

ruby-on-rails - Ruby:多行条件

python - 将 Python 代码转换为 Ruby