有没有办法在方法中获取参数名称列表?
例如,假设我有以下方法定义:
def speak(name, age, address)
# some code
end
如何获得name
,age
和address
的数组?
答案 0 :(得分:2)
您可以直接使用这些值。
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")
答案 1 :(得分:1)
您可以使用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
答案 2 :(得分:0)
找到了答案!
def speak (name, age, address)
puts local_variables
end