Página original: http://pine.fm/LearnToProgram/?Chapter=02
Así que ya aprendimos todo de los números, que hay de las letras? palabras? texto?
En la programación a los grupos de letras se les llaman cadenas. (Puedes pensar como letras impresas encadenadas en un anuncio.) Para facilitar la identificación de cadenas dentro del código, les pondré un color rojo, y a los números que utilicemos les pondré un color verde. Aquí hay algunas cadenas:
'Hola' 'Ruby rulea.' 'Mi numero favorito es el 5... cual es el tuyo?' ' ' ''
Como puedes ver las cadenas pueden tener signos de puntuación, dígitos, símbolos y espacios… aparte de las letras. Como puedes ver la ultima cadena no tiene nada, asi que la llamaremos cadena vacía.
Hemos estado usando puts para imprimir números, ahora probemos con cadenas:
1 2 3 | puts 'Hola mundo!' puts '' puts 'Adios' |
Hola mundo! Adios
Como puedes ver, funciono a la perfección, ahora intenta con algunas cadenas de tu invención.
Aritmética de Cadenas
Así como puedes hacer aritmética con números, también puedes hacer aritmética con las cadenas. Bueno… algo así. Puedes sumar cadenas. Ahora intentemos sumar dos cadenas y veamos que hace puts.
1 | puts 'Me gusta' + 'el pastel de manzana.' |
Me gustael pastel de manzana.
Como puedes ver, me olvide de poner un espacio entre ‘Me gusta’ y ‘el pastel de manzana.’. Los espacios normalmente no importan, pero en las cadenas si. (Es verdad cuando dicen: Las computadoras no hacen lo que quieres, sino lo que dices que hagan.) Así que intentemos de nuevo:
1 2 | puts 'Me gusta ' + 'el pastel de manzana.' puts 'Me gusta' + ' el pastel de manzana.' |
Me gusta el pastel de manzana. Me gusta el pastel de manzana.
(Como puedes ver, no importa en cual cadena ponga el espacio.)
Así que puedes sumar cadenas, también puedes multiplicarlas (aunque solo con un numero.). Observa:
1 | puts 'parpadear ' * 4 |
agitando los parpados
(es broma… esto es lo que hace:)
parpadear parpadear parpadear parpadear
Si te pones a pensar, esto tiene sentido. Después de todo 7*3 es igual a 7+7+7, así que ‘moo‘*3 es igual que ‘moo‘+’moo‘+’moo‘.
12 vs ‘12‘
Antes de que avancemos mas, hay que asegurarnos que comprendemos la diferencia entre numero y dígitos. 12 es un numero, pero ‘12‘ es una cadena de dos dígitos.
Veamos un poco mas de esto:
1 2 3 | puts 12 + 12 puts '12' + '12' puts '12 + 12' |
24 1212 12 + 12
Que te parece esto:
1 2 3 | puts 2 * 5 puts '2' * 5 puts '2 * 5' |
10 22222 2 * 5
Estos ejemplos son muy explícitos. Sin embargo, si no tienes cuidado mezclando cadenas y números puedes terminar en…
Problemas
Hasta este punto, puede que hayas probado algunas cosas que no hayan funcionado. Y si no, aquí hay algunos ejemplos:
1 2 | puts '12' + 12 puts '2' * '5' |
#<TypeError: can't convert Fixnum into String>
Como puedes ver, devuelve un mensaje de error. El problema es que no puedes sumar un numero con una cadena, o multiplicar una cadena con otra. Es como si pusiéramos:
1 2 | puts 'Bety' + 12 puts 'Juan' * 'Pedro' |
Algo que hay que tomar en cuenta es que puedes escribir ‘cerdo‘*5 en un programa ya que significa escribir 5 veces ‘cerdo‘. Pero, lo que no podemos hacer es escribir 5*’cerdo‘, ya que significaria ‘cerdo‘ numero de veces el 5, lo cual no tiene sentido.
Finalmente, si queremos escribir un programa que diga Esta es una apostrofe: ‘ . Podemos intentar con:
1 | puts 'Esta es una apostrofe:'' |
Aunque no va a funcionar. Ni siquiera permitirá ejecutar el programa. La computadora pensará que se terminó la cadena. (Por eso es bueno tener un editor de texto que coloree la sintaxis para ti.) Como le decimos a la computadora que todavía no termina la cadena? Tenemos que escapar de la apostrofe de la siguiente manera:
1 | puts 'Esta es una apostrofe: \'' |
Esta es una apostrofe: '
La diagonal invertida es la letra de escape. En otras palabras, si tienes una diagonal invertida seguida de otro caractér, algunas veces se traduce como un nuevo caractér. De la única cosa que la diagonal invertida escapa es de las apóstrofes y de las diagonales invertidas. (Si lo piensas, las teclas de escape siempre deben de escapar de si mismas.) Aquí hay algunos ejemplos:
1 2 3 4 | puts 'Esta es una apostrofe: \'' puts 'diagonal invertida al final de una cadena: \\' puts 'arriba\\abajo' puts 'arriba\abajo' |
Esta es una apostrofe: ' diagonal invertida al final de una cadena \ arriba\abajo arriba\abajo
Ya que la diagonal invertida no escapa a la letra ‘d‘, pero no escapa de si misma, las ultimas dos cadenas son iguales. No se ven igual en el código, pero para la computadora significan lo mismo.
Si tienes alguna pregunta, lee el siguiente capítulo. :D
Etiquetas: Programación, Ruby, Tutorial







