Aprende a Programar con Ruby

Variables

Hasta ahora, cuando usamos 'puts' para un texto o número, esto desaparece. A lo que me refiero es que, si queremos imprimir algo dos veces, necesitamos escribirlo dos veces:

Código:

puts '...puedes decir eso de nuevo...'
puts '...puedes decir eso de nuevo...'

Resultado:

...puedes decir eso de nuevo...
...puedes decir eso de nuevo...

Sería bueno si pudiesemos escribirlo solo una vez y quedárnoslo... guardarlo en algún lado. Bueno, sí podemos, por supuesto; de otra manera, ¡no lo hubiese mencionado!

Para guardar el texto en la memoria de tu computador, necesitamos darle un nombre al texto. Los programadores se refieren frecuentemente a este proceso como asignación y llaman a los nombres variables. Esta variable puede ser cualquier secuencia de letras o números, pero el primer caracter necesita ser minúscula. Probemos nuestro programa de nuevo, pero esta vez voy a darle el nombre 'myString' al texto (aunque podría haber usado cualquier nombre, por ejemplo 'str' o 'myOwnLittleString' o 'enriqueOctavo').

Código:

myString = '...puedes decir eso de nuevo...'
puts myString
puts myString

Resultado:

...puedes decir eso de nuevo...
...puedes decir eso de nuevo...

En todo momento cuando haces referencia a 'myString', el programa usa en su reemplazo "'...puedes decir eso de nuevo...'". Puedes pensar en la variable 'myString' como "apuntando" al texto "'...puedes decir eso de nuevo...'". Este es un ejemplo un poco más interesante.

Código:

name = 'Patricia Rosanna Jessica Mildred Oppenheimer'
puts 'Me llamo ' + name + '.'
puts 'Wow!  "' + name + '" es un nombre realmente largo!'

Resultado:

Me llamo Patricia Rosanna Jessica Mildred Oppenheimer
Wow! Patricia Rosanna Jessica Mildred Oppenheimer es un nombre realmente largo!

También, así como podemos asignar un objeto a una variable, podemos reasignar un objeto diferente a esa variable (Por eso es que las llamamos variables: porque varían.)

Código:

composer = 'Mozart'
puts composer + ' fue "el amo", en su día.'

composer = 'Beethoven'
puts 'Pero yo prefiero a ' + composer + ', personalmente.'

Resultado:

Mozart fue "el amo", en su día.
Pero yo prefiero a Beethoven, personalmente.

Por supuesto, las variables pueden apuntar a cualquier tipo de objeto, no sólo texto:

Código:

var = 'solo otro ' + 'texto'
puts var

var = 5 * (1+2)
puts var

Resultado:

solo otro texto
15

De hecho, las variables pueden apuntar a casi cualquier cosa... excepto otras variables. ¿Pero qué pasa si lo intentamos?

Código:

var1 = 8
var2 = var1
puts var1
puts var2

puts ''

var1 = 'ocho'
puts var1
puts var2

Resultado:

8
8

ocho
8

Primero, cuando tratamos de apuntar var2 a var1 en realidad apuntamos a 8 (que es el valor al cual apuntaba var1). Luego cuando apuntamos var1 a 'ocho', el valor de var2 no cambia ya que en realidad no estaba apuntando a var1 sino a 8. Ahora que tenemos variables, números y textos, vamos a ver como mezclarlos.