Get value from string representing local variable

9.2k views Asked by At

I have a local variable name as a string, and need to get its value.

variable = 22
"variable".to_variable?

How can I get the value 22 form the string?

3

There are 3 answers

3
shivam On BEST ANSWER

You can use eval.

variable = 22
eval("variable")
# => 22 

However eval can be nasty. If you dont mind declaring an instance variable, you can do something like this too:

@variable = 22
str = "variable"
instance_variable_get("@#{str}")
# => 22
1
sawa On
binding.local_variable_get("variable")
# => 22
2
usmanali On

use eval() method:

variable = 22
eval "variable" #"variable".to_variable?
# => 22