【发布时间】:2013-03-26 13:39:12
【问题描述】:
如何获取变量名?例如,
def get_var_name(var)
# return variable name
end
myname = nil
get_var_name myname #=> myname
最初的目的:
somevar = "value"
puti somevar #=> somevar = "value"
# that is a shortage for
# `puts "somevar = #{somevar.inspect}"`
我的尝试:
def puti(symb)
var_name = symb.to_s
var_value = eval(var_name)
puts "#{var_name} = #{var_value.inspect}"
end
puti :@somevar # that actually will work only with class vars or whatever considering var scope;
【问题讨论】:
-
stackoverflow.com/questions/1356749 这更接近你的要求。
-
另一个用例是使用变量名作为哈希键,例如
es例如:a=1; b=2; h=Hash[a,b]; puts h应该是:{a: 1, b: 2}
标签: ruby