Estoy empezando a aprender Ruby y he escrito un programa que genera algunos números y los asigna a variables @one, @two, @three, etc. El usuario puede especificar una variable para cambiar ingresando su nombre (por ejemplo, uno). Entonces necesito hacer algo como '@ [valueofinout] = asd'. ¿Cómo lo haría? ¿Hay alguna manera mejor de desanimar la manera en que estoy pensando? He encontradoUsando el valor de una variable como otro nombre de variable en Ruby
x = "myvar"
myvar = "hi"
eval(x) -> "hi"
pero no entiendo completamente por qué es necesaria la segunda línea. En mi caso voy a usar algo como
@one = "21"
input = "one"
input = "@" + input
changeto = "22"
eval(input) -> changeto
guau, esta es en realidad un área donde PHP eclipsa ruby en términos de limpieza de sintaxis. http://stackoverflow.com/a/4169891/2951835 – ahnbizcad
Ruby hace que sea difícil de hacer porque es feo, rara vez es necesario configurar una variable especificada por el usuario de una instancia a menos que esté metaprogramando. Moverse dinámicamente con variables globales es un agujero de seguridad; si desea un conjunto de variables definidas por el usuario, probablemente desee un hash. – rjh