【发布时间】:2011-08-21 06:53:54
【问题描述】:
有没有办法获取方法中的参数名称列表?
例如,假设我有以下方法定义:
def speak(name, age, address)
# some code
end
如何获得name、age 和address 的数组?
【问题讨论】:
标签: ruby
有没有办法获取方法中的参数名称列表?
例如,假设我有以下方法定义:
def speak(name, age, address)
# some code
end
如何获得name、age 和address 的数组?
【问题讨论】:
标签: ruby
您可以直接使用这些值。
def speak(name, age, address)
puts "Hello #{name}!"
end
要访问您可以使用local_variables 的名称,但我不建议这样做。
def speak(name, age, address)
p local_variables # => [:name, :age, :address]
end
但您很可能会想要使用哈希:
def speak(hash)
# use the keys/values of hash
end
现在你可以使用
speak({:name => "foo", :age => 42, :address => "123"})
# or
speak(:name => "foo", :age => 42, :address => "123")
【讨论】:
您可以使用local_variables,但有更好的方法:
def speak(name, age, address)
p self.method(__method__).parameters #=> [[:req, :name],
[:req, :age],
[:req, :address]]
end
当你使用local_variables时,你应该在方法的开头使用它:
def speak(name, age, address)
foo = 1
p local_variables #=> [:name, :age, :address, :foo]
end
【讨论】:
找到答案了!
def speak (name, age, address)
puts local_variables
end
【讨论】: