Ruby 101 session 3

Preview:

Citation preview

HASHES, SYMBOLS Y ORIENTACION A OBJETOS I

Ruby 101

Sergio Castillo Yrizales@scyrizales

Agenda

Hashes y Simbolos

Orientacion a Objetos

Hashes y Simbolos

Extra: case when else end

Es una estructura de control especial

Te permite estructurar diversos casos de equivalencias

Puede usarse sin variable inicial:

Hashes. Valor por defecto

El valor que se usa en el constructor será el valor por defecto

Símbolos (Symbol)

Es un tipo de nombre

NO ES UNA CADENA

Las cadenas iguales son objetos diferentes

Los símbolos iguales son el mismo objeto

Para que usamos Symbols?

Para los keys de los hashesAhorran memoria

Convirtiendo strings en symbols

Mediante el método to_sym

Para regresar, se hace mediante el método to_s

Otra forma de escribir Hashes

Antes era asi (sin Symbols)

Ahora es asi (con Symbols)

Buscando en Hashes

Buscando por key Buscando por value

Recorriendo Hashes por…

Las keys Los values

Eliminando una llave

Usamos el método delete

Reto: Rating para Peliculas

Escribiremos un programa que se haga cargo de nuestros ratings

Copien la estructura en nuevo archivo y rellenen en donde haga falta

Orientación a Objetos

Por qué Objetos

Ruby es un lenguaje OO

Todo en Ruby es un objeto

Y todo el tiempo hemos usado métodos

Class

Es el mapa para generar nuevos objetos

Constructor

Es el método que inicia todo en RubySe llama al usar el .newSe define mediante initialize

Variables

Variables de Instancia: @Variables de Clase: @@Variables Globales: $

Métodos

Constructor

De instancia

De clase

Herencia

Una clase puede heredar de otraSe usa para definir la relación “es un”Adulto es un HumanoEn Ruby se usa el operador <

Sobreescribiendo

Un método de la clase padre puede ser reescrito por la clase hija

En general todos los otros métodos se pasan directamente a la clase hija

Accesando al padre

Una vez que hemos sobrescrito un método, se puede accesar a este mediante el uso del super

Reto: Computadora virtual

Escribamos un clase que represente a una computadora

Cada computadora tiene un usuario y un password

Debe guardar un Hash con las computadoras creadas donde el key sea el usuario y el value sea el pass.

Debe tener un metodo de clase que retorne este hash

Debe tener 2 metodos, uno para crear archivos y el otro que sea el constructor.

Más Ejemplos

Los ejercicios de esta clase se encuentran en:

https://github.com/scyrizales/Ruby101/tree/master/TerceraClase

Contacto a @scyrizales (twitter, skype)

Muchas gracias