Guías de Make it Real
  • Introduction
  • Preparación
    • Conceptos básicos
    • El editor de texto
    • La línea de comandos
    • Git y Github
  • Git
    • Instalación y configuración
    • Conceptos y comandos esenciales
    • Ignorando archivos y carpetas
    • Trabajando con ramas
    • Repositorios remotos
    • Etiquetas
    • Reescribiendo la historia
    • Stashing
    • Github
  • HTML y CSS
    • Introducción a HTML
    • Introducción a CSS
    • Más elementos de HTML
    • Tablas
    • Formularios
    • El modelo de caja en CSS
    • Fondos (backgrounds)
    • Posicionamiento
    • Selectores CSS
    • Bordes, sombras y gradientes
    • Media Queries
    • Unidades en CSS
    • Flexbox
  • Bootstrap 3
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Personalizando Bootstrap
    • Utilizando plantillas
  • Bootstrap 4
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Clases utilitarias
    • Personalizando Bootstrap
  • Ruby
    • Primeros pasos
    • Tipos y operadores
    • Variables y entrada de usuario
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Hashes
    • Métodos
    • Manipulación de archivos
    • Gemas
  • Programación Orientada a Objetos en Ruby
    • Clases y objetos
    • Métodos y atributos de clase
    • Herencia
    • Módulos
    • Excepciones
  • JavaScript I
    • Primeros pasos
    • Tipos y operadores
    • Variables
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Funciones
    • Objetos literales
    • Manipulación de archivos
  • JavaScript en el navegador
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Local Storage
    • History API
    • Canvas
    • Notificaciones Web
    • Audio y Video
    • Arrastrar y soltar
    • JSON
    • Realizando peticiones HTTP
  • jQuery
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Plugins
    • Realizando peticiones con AJAX
  • JavaScript II
    • Prototipos
    • Librerías (Node.js)
    • ES6
    • Uso de this (call, apply, bind)
    • Programación funcional
    • Scope, hoisting, closures
    • Programación asincrónica
    • Testing
  • HTTP y Sinatra
    • Primeros pasos con Sinatra
    • El protocolo HTTP
    • Rutas
    • Formularios
    • Cookies y sesión
  • Bases de datos
    • Bases de datos relacionales
    • SQL
    • DDL
    • MongoDB
  • Ruby on Rails I
    • Primeros pasos
    • Arquitectura
    • Rutas
    • Layouts y rendering
    • ActiveRecord - Modelos
    • ActiveRecord - Migraciones
    • ActiveRecord - Validaciones
    • ActiveRecord - Asociaciones
    • ActiveRecord - Scopes
    • ActiveRecord - Callbacks
    • Recursos REST
    • Formularios
    • Autenticación con Devise
    • Sass y Bootstrap
    • Envío de correos
    • Carga de imágenes
    • Seeds
    • Heroku
  • Ruby on Rails II
    • Usando JavaScript (y jQuery) en Rails
    • Testing en Ruby
    • Testing en Rails
    • Creando una Web API
    • Web Sockets
  • Express.js
    • Primeros Pasos
    • El protocolo HTTP
    • Rutas
    • Vistas
    • Middlewares y manejo de errores
    • Formularios
    • Cookies y sesión
  • Express.js II
    • Mongoose
    • Web Sockets
    • Autenticación
    • Envío de correos
    • Cargar imágenes
    • Deployment
    • Testing
    • Creando una Web API
  • React
    • Primeros pasos
    • JSX
    • Componentes
    • Más sobre estado
    • Formularios
    • Peticiones HTTP con Axios
    • React Hooks
    • React Context
    • React Bootstrap
    • React Router
    • Carga de Imágenes
    • Testing
    • Estructura de carpetas
    • Componentes de clase
  • Redux
    • Primeros pasos
    • Action creators
    • Usando la librería react-redux
    • Middlewares
    • Operaciones asincrónicas con redux-thunk
    • Combinando funciones reductoras
    • Testing
    • Redux Tool Kit
  • Algoritmos
    • Describiendo un algoritmo
    • Complejidad (Big-O)
    • Estructuras de datos
    • Recursión
    • Ordenamiento
    • Búsqueda
    • Programación dinámica
  • Python
    • Primeros Pasos
    • Tipos y Variables
    • Funciones
    • Control de Flujo
    • Listas
    • Ciclos
    • Diccionarios, Tuplas y Sets
  • NumPy
    • Primeros Pasos
    • Arreglos
    • Arreglos Multidimensionales
    • Estadística con NumPy
    • Distribución Estadística
  • Pandas
    • Primeros Pasos
    • Inspección y Selección de Datos
    • Modificando Dataframes
    • La Función Lambda
    • Aggregates en Pandas
    • Múltiples Tablas
Powered by GitBook
On this page
  • Cadenas de texto
  • Números
  • Expresiones booleanas
  • Concatenando cadenas
  • Concatenando valores de diferentes tipos
  • Interpolación
  1. Ruby

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:

"Texto entre comillas dobles"
'Texto entre comillas simples'

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:

puts 1 + 2
puts 3 * 4 + 5
puts 8 / 2

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.

$ irb
> 5 > 3
 => true
> 5 >= 3
 => true
> 4 < 4
 => false
> 4 <= 4
 => true
> 2 == 2
 => true
> 2 != 2
 => false
> "ruby" == "javascript"
 => false
> "ruby" != "javascript"
 => true

Concatenando cadenas

Es posible unir cadenas de texto con el operador +. Por ejemplo, abre IRB y ejecuta lo siguiente:

"Hola" + "Mundo" + "Cómo" + "Estás"

Deberías ver algo como esto:

$ irb
> "Hola" + "Mundo" + "Cómo" + "Estás"
 => "HolaMundoCómoEstás"

Fíjate que las palabras no se separan con espacio automáticamente, tenemos que agregar los espacios explícitamente:

$ irb
> "Hola " + "Mundo " + "Cómo " + "Estás"
 => "Hola Mundo Cómo Estás"

Concatenando valores de diferentes tipos

Si intentas concatenar una cadena con un número vas a ver el siguiente error:

$ irb
> "Hola" + 3
TypeError: no implicit conversion of Fixnum into String
    from (irb):1:in `+'
    from (irb):1
    from /Users/germanescobar/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'

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:

$ irb
> "Hola" + 3.to_s
 => "Hola3"

Ahora intenta lo siguiente, queremos que imprima "2 + 3 es 5":

$ irb
> "2 + 3 es " + 2 + 3
TypeError: no implicit conversion of Fixnum into String
    from (irb):6:in `+'
    from (irb):6
    from /Users/germanescobar/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'

¿Qué pasa si le añadimos .to_s a cada número? Veamos:

$ irb
> "2 + 3 es " + 2.to_s + 3.to_s
 => "2 + 3 es 23"

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:

$ irb
> "2 + 3 es " + (2 + 3).to_s
 => "2 + 3 es 5"

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:

$ irb
> "Hola #{4}"
 => "Hola 4"

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:

$ irb
> "2 + 3 es #{2 + 3}"
 => "2 + 3 es 5"

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:

    $ irb
    > '2 + 3 es #{2 + 3}'
     => "2 + 3 es #{2 + 3}"
  • 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.

PreviousPrimeros pasosNextVariables y entrada de usuario

Last updated 2 years ago