Buenas, estoy intentando hacer un pequeño programa y se me plantea el
siguiente problema:
ab=“Texto de prueba”
c=“a”
d=“b”
puts c+d
El caso esque yo lo que quiero esque el puts muestre “Texto de prueba”,
pero muestra “ab”.
Como puedo hacer para que una variable apunte a otra, es decir, si por
ejemplo ahora añado:
ab=“Texto de prueba”
c=“a”
d=“b”
e=c+d
Que la variable e, contenga a la variable ab, no a la cadena “ab”, eso
es lo que me interesa.
Bueno, gracias de antemano y saludos!
En todos los casos estas asignando texto a las variables, ese es el
problema.
irb(main):001:0> a = “hola”
=> “hola”
irb(main):002:0> b = a
=> “hola”
irb(main):003:0> b
=> “hola”
irb(main):004:0>
En tu ejemplo la linea c=“a” no asigna el valor de la variable a, sino
la
letra a.
2008/4/29 Diego G. [email protected]:
Hola,
ab=“Texto de prueba”
c=“a”
d=“b”
puts c+d
El caso esque yo lo que quiero esque el puts muestre “Texto de prueba”,
pero muestra “ab”.
eso que pides huele de lejos a peligro y a código difÃcil de mantener…
pero sin entrar a valorar si lo que quieres es buena idea o no, se
consigue asÃ
eval c+d
suerte,
javier ramÃrez
eso que pides huele de lejos a peligro y a código difÃcil de mantener…
pero sin entrar a valorar si lo que quieres es buena idea o no, se
consigue asÃ
eval c+d
suerte,
javier ramÃrez
Vale, muchas gracias, ahora si que me funciona. Pero el caso siempre es
mejorar, y no entiendo el porqué de el codigo será dificil de mantener o
peligroso.
gracias de nuevo y saludos
Vale, muchas gracias, ahora si que me funciona. Pero el caso siempre es
mejorar, y no entiendo el porqué de el codigo será dificil de mantener o
peligroso.
En general el código que es difÃcil de entender es difÃcil de mantener.
Utilizar una evaluación de variables de esa manera no es algo obvio, por
lo que de cara a mantener el código necesitarás un comentario explicando
qué hace. En general los comentarios que no se pongan a principio de un
método sino que aparezcan en medio, suelen indicar que se usó algo que
no era evidente, y muchas veces se tiende a no tocar esas partes del
código para que no se rompa nada. Eso puede hacer que tu código, en una
hipotética refactorización, no se mejore por miedo a que deje de
funcionar.
En cuanto al peligro, cada eval es un potencial peligro, depende de
dónde venga la información que vas a evaluar. Si esa información viene
de un usuario final, te puede colar código ruby.
saludos,
javier ramÃrez
On Apr 29, 2008, at 17:48 , Diego G. wrote:
Buenas, estoy intentando hacer un pequeño programa y se me plantea el
siguiente problema:
ab=“Texto de prueba”
c=“a”
d=“b”
puts c+d
Normalmente esto es signo de que necesitas un hash en lugar de
variables.
Vale, muchas gracias por la calidad y la velocidad de la explicación!
saludos