Tipos y operadores
En este capítulo vamos a hablar sobre cadenas de texto, números y booleanos (verdadero o falso), que son algunos de los tipos de datos en Ruby, y cómo realizar operaciones básicas con ellos.

Cadenas de texto

Una cadena de texto es un conjunto de caracteres encerrados entre comillas simples (') o dobles ("). Por ejemplo:
1
"Texto entre comillas dobles"
2
'Texto entre comillas simples'
Copied!

Números

Los números en Ruby funcionan muy similar a como funcionan en otros lenguajes de programación y puedes realizar las operaciones normales sobre ellos como sumas, restas, etc. Por ejemplo:
1
puts 1 + 2
2
puts 3 * 4 + 5
3
puts 8 / 2
Copied!

Expresiones booleanas

En Ruby se utilizan las expresiones true y false para representar verdadero y falso respectivamente.
Los operadores lógicos <, >, <=, >=, ==, != se utilizan para crear expresiones que evalúan a un valor booleano true o false.
1
$ irb
2
> 5 > 3
3
=> true
4
> 5 >= 3
5
=> true
6
> 4 < 4
7
=> false
8
> 4 <= 4
9
=> true
10
> 2 == 2
11
=> true
12
> 2 != 2
13
=> false
14
> "ruby" == "javascript"
15
=> false
16
> "ruby" != "javascript"
17
=> true
Copied!

Concatenando cadenas

Es posible unir cadenas de texto con el operador +. Por ejemplo, abre IRB y ejecuta lo siguiente:
1
"Hola" + "Mundo" + "Cómo" + "Estás"
Copied!
Deberías ver algo como esto:
1
$ irb
2
> "Hola" + "Mundo" + "Cómo" + "Estás"
3
=> "HolaMundoCómoEstás"
Copied!
Fíjate que las palabras no se separan con espacio automáticamente, tenemos que agregar los espacios explícitamente:
1
$ irb
2
> "Hola " + "Mundo " + "Cómo " + "Estás"
3
=> "Hola Mundo Cómo Estás"
Copied!

Concatenando valores de diferentes tipos

Si intentas concatenar una cadena con un número vas a ver el siguiente error:
1
$ irb
2
> "Hola" + 3
3
TypeError: no implicit conversion of Fixnum into String
4
from (irb):1:in `+'
5
from (irb):1
6
from /Users/germanescobar/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
Copied!
El error nos dice que no es posible convertir un Fixnum (un número) a un String (a una cadena de texto). Una solución a este problema es convertir explícitamente el número a una cadena añadiendo .to_s a la derecha del número:
1
$ irb
2
> "Hola" + 3.to_s
3
=> "Hola3"
Copied!
Ahora intenta lo siguiente, queremos que imprima "2 + 3 es 5":
1
$ irb
2
> "2 + 3 es " + 2 + 3
3
TypeError: no implicit conversion of Fixnum into String
4
from (irb):6:in `+'
5
from (irb):6
6
from /Users/germanescobar/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
Copied!
¿Qué pasa si le añadimos .to_s a cada número? Veamos:
1
$ irb
2
> "2 + 3 es " + 2.to_s + 3.to_s
3
=> "2 + 3 es 23"
Copied!
No es el resultado que esperábamos. Lo que hizo Ruby fue concatenar la cadena "2 + 3 es " con las cadenas "2" y "3".
Una solución es envolver la suma entre paréntesis y agregarle .to_s:
1
$ irb
2
> "2 + 3 es " + (2 + 3).to_s
3
=> "2 + 3 es 5"
Copied!
Pero estar convirtiendo los tipos a cadena de texto con .to_s es muy engorroso. Ruby nos ofrece una mejor solución, la interpolación:

Interpolación

La interpolación es la forma recomendada de concatenar cadenas en Ruby. Abre IRB e intenta lo siguiente:
1
$ irb
2
> "Hola #{4}"
3
=> "Hola 4"
Copied!
La interpolación nos permite ejecutar código Ruby dentro de una cadena de texto, convertir el resultado a una cadena de texto y reemplazarlo en donde se definió. Por ejemplo:
1
$ irb
2
> "2 + 3 es #{2 + 3}"
3
=> "2 + 3 es 5"
Copied!
Para usar interpolación ten en cuenta lo siguiente:
    Debes usar comillas dobles (") en vez de sencillas ('). Si utilizas comillas sencillas Ruby ignora la interpolación:
    1
    $ irb
    2
    > '2 + 3 es #{2 + 3}'
    3
    => "2 + 3 es #{2 + 3}"
    Copied!
    La sintaxis de la interpolación es #{}. Ruby evalúa lo que esté entre los corchetes y lo convierte en cadena de texto.
    Puedes usar #{} las veces que quieras dentro de una cadena.
Last modified 3yr ago