Concatenar dos variables

Buenas tardes lista,

tengo dos arrays denominados @elem1 y @elem2 para acceder a uno u otro
tengo una variable que me indica el indice (en este caso se llama
@num_elem y tiene los valores 1 o 2).

Mi duda es q no se como concatenar dos variables, he probado a hacerlo
de la siguiente forma: @comb+@num_elem+.size

Alguien me podría ayudar?

Gracias y saludos

La clase array tiene un metodo para concatenar… y precisamente no es
concat ???

On Mon, Dec 03, 2007 at 06:25:12PM +0100, Melisa Fernández wrote:

Buenas tardes lista,

Buenas,

tengo dos arrays denominados @elem1 y @elem2 para acceder a uno u otro tengo una variable que me indica el indice (en este caso se llama @num_elem y tiene los valores 1 o 2).

Mi duda es q no se como concatenar dos variables, he probado a hacerlo de la siguiente forma: @comb+@num_elem+.size

¿A qué te refieres con concatenar? ¿De qué clase es @comb?

Si te refieres a concatenar cadenas, puedes hacerlo
así:
cadena1 + cadena2

Pero si cadena1 y cadena2 no son cadenas, tendrás que “transformarlas”
antes de usar el operador “+”.

numero1.to_s + cadena2

También tienes una opción que personalmente me gusta más:

“#{numero1} #{cadena2}”

Alguien me podría ayudar?

¿Responde eso a tu pregunta?

Gracias y saludos

No hay de qué. Espero que te sirva de algo.

Saludos.

Porq no es buena idea construir esa estructura de nombre de variables?
Voy a probar a incluirlas en un hash.

Pero, en el caso de querer concatenar esas dos variables como sería?

Saludos y muchas gracias.

On Dec 3, 2007, at 6:25 PM, Melisa Fernández wrote:

Buenas tardes lista,

tengo dos arrays denominados @elem1 y @elem2 para acceder a uno u
otro tengo una variable que me indica el indice (en este caso se
llama @num_elem y tiene los valores 1 o 2).

Mi duda es q no se como concatenar dos variables, he probado a
hacerlo de la siguiente forma: @comb+@num_elem+.size

Alguien me podría ayudar?

Por lo general no es buena idea construir nombres de variables de ese
modo. Normalmente indica que necesitas alguna estructura, por ejemplo:

[@elem1, @elem2][@num_elem]

o una hash table…

– fxn

No se, parece que lo que quieres es esto:

elems=[@elem1, @elem2]

elems[@num_elem].size

donde @num_elem vale 0 o 1.

tambien está la función eval, creo

elems=eval("@elem"+@num_elem)

donde @num_elem ahora si vale 1 o 2.

Es mejor el método 1 mucho más directo y rápido.

On Dec 4, 2007, at 11:01 AM, Melisa Fernández wrote:

Porq no es buena idea construir esa estructura de nombre de variables?

Porque las variables sirven diferente proposito a las estructuras de
datos. Las variables viven en el plano digamos sintactico del
programa, las estructuras de datos viven en el plano de representacion
y manejo de datos en runtime.

Por ejemplo, un principiante en programacion suele pasar en algun
punto de su aprendizaje por querer hacer esto:

user1, user2, user3

Almacena N usuarios en variables explicitas con la intencion de
acceder a uno u otro segun un indice. Ahi hay que explicar el concepto
de array.

Si necesitas acceder dinamicamente a un dato u otro en funcion de un
valor lo apropiado es proporcionar la estructura de datos que se
ajuste a ello.

Voy a probar a incluirlas en un hash.

Pero, en el caso de querer concatenar esas dos variables como sería?

Necesitas construir el nombre de la variable y evaluar el resultado
dinamicamente, una posibilidad en tu caso es esta:

array = instance_variable_get("@elem#@num_elem")

– fxn

Sigo insistiendo en el metodo concat … esta mas que probado… busca
en
la ayuda y veras. Es sismilar a todos los demas lenguajes que conozco
OO.

On Dec 4, 2007, at 3:56 PM, Mägo de Oz wrote:

Sigo insistiendo en el metodo concat … esta mas que probado…
busca en la ayuda y veras. Es sismilar a todos los demas lenguajes
que conozco OO.

Concat no sirve, dale una releida al thread.

– fxn