SlideShare une entreprise Scribd logo
1  sur  25
H A S H E S , S Y M B O L S Y
O R I E N T A C I O N A O B J E T O S 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 hashes
 Ahorran 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 Ruby
 Se llama al usar el .new
 Se 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 otra
 Se usa para definir la relación “es un”
 Adulto es un Humano
 En 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)
Ruby 101 session 3

Contenu connexe

En vedette

En vedette (18)

Ruby 101 session 1
Ruby 101 session 1Ruby 101 session 1
Ruby 101 session 1
 
Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding Dojo
 
Ruby 101 session 4
Ruby 101 session 4Ruby 101 session 4
Ruby 101 session 4
 
Ruby 101 session 5
Ruby 101 session 5Ruby 101 session 5
Ruby 101 session 5
 
Introduccion al desarrollo de aplicaciones web con Ruby on Rails
Introduccion al desarrollo de aplicaciones web con Ruby on RailsIntroduccion al desarrollo de aplicaciones web con Ruby on Rails
Introduccion al desarrollo de aplicaciones web con Ruby on Rails
 
Ruby 101
Ruby 101Ruby 101
Ruby 101
 
Comandos html
Comandos htmlComandos html
Comandos html
 
Ruby101
Ruby101Ruby101
Ruby101
 
Ruby 101 session 2
Ruby 101 session 2Ruby 101 session 2
Ruby 101 session 2
 
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticasCurso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
 
COMANDO HTML
COMANDO HTMLCOMANDO HTML
COMANDO HTML
 
Ruby Facil
Ruby FacilRuby Facil
Ruby Facil
 
Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011Ruby on Rails - ETyC 2011
Ruby on Rails - ETyC 2011
 
Comando y ejercicios para HTML
Comando y ejercicios para HTMLComando y ejercicios para HTML
Comando y ejercicios para HTML
 
Ruby 101
Ruby 101Ruby 101
Ruby 101
 
curso Pseint 1 (16 ejercicios basicos)
curso Pseint 1 (16 ejercicios basicos)curso Pseint 1 (16 ejercicios basicos)
curso Pseint 1 (16 ejercicios basicos)
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
 

Plus de Sergio Castillo Yrizales

Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothSergio Castillo Yrizales
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesSergio Castillo Yrizales
 

Plus de Sergio Castillo Yrizales (20)

Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Lambda at the edge
Lambda at the edgeLambda at the edge
Lambda at the edge
 
Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetooth
 
Pushing html5 beyond boundaries
Pushing html5 beyond boundariesPushing html5 beyond boundaries
Pushing html5 beyond boundaries
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Web apps con angular y material design
Web apps con angular y material designWeb apps con angular y material design
Web apps con angular y material design
 
Tdd con Angular y jasmine
Tdd con Angular y jasmineTdd con Angular y jasmine
Tdd con Angular y jasmine
 
Angular Conceptos Practicos 2
Angular Conceptos Practicos 2Angular Conceptos Practicos 2
Angular Conceptos Practicos 2
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 
Advanced angular 2
Advanced angular 2Advanced angular 2
Advanced angular 2
 
Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Javascript + Angular Sesion 6
Javascript + Angular Sesion 6Javascript + Angular Sesion 6
Javascript + Angular Sesion 6
 
Javascript + Angular Sesion 5
Javascript + Angular Sesion 5Javascript + Angular Sesion 5
Javascript + Angular Sesion 5
 
Javascript + Angular Sesion 4
Javascript + Angular Sesion 4Javascript + Angular Sesion 4
Javascript + Angular Sesion 4
 
Javascript + Angular Sesion 3
Javascript + Angular Sesion 3Javascript + Angular Sesion 3
Javascript + Angular Sesion 3
 
Javascript + Angular Sesion 2
Javascript + Angular Sesion 2Javascript + Angular Sesion 2
Javascript + Angular Sesion 2
 
Javascript + Angular Sesion 1
Javascript + Angular Sesion 1Javascript + Angular Sesion 1
Javascript + Angular Sesion 1
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
 

Dernier

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Dernier (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Ruby 101 session 3

  • 1. H A S H E S , S Y M B O L S Y O R I E N T A C I O N A O B J E T O S I Ruby 101 Sergio Castillo Yrizales @scyrizales
  • 2. Agenda  Hashes y Simbolos  Orientacion a Objetos
  • 4. Extra: case when else end  Es una estructura de control especial  Te permite estructurar diversos casos de equivalencias  Puede usarse sin variable inicial:
  • 5. Hashes. Valor por defecto  El valor que se usa en el constructor será el valor por defecto
  • 6. 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
  • 7. Para que usamos Symbols?  Para los keys de los hashes  Ahorran memoria
  • 8. Convirtiendo strings en symbols  Mediante el método to_sym  Para regresar, se hace mediante el método to_s
  • 9. Otra forma de escribir Hashes  Antes era asi (sin Symbols)  Ahora es asi (con Symbols)
  • 10. Buscando en Hashes  Buscando por key  Buscando por value
  • 11. Recorriendo Hashes por…  Las keys  Los values
  • 12. Eliminando una llave  Usamos el método delete
  • 13. 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
  • 15. Por qué Objetos  Ruby es un lenguaje OO  Todo en Ruby es un objeto  Y todo el tiempo hemos usado métodos
  • 16. Class  Es el mapa para generar nuevos objetos
  • 17. Constructor  Es el método que inicia todo en Ruby  Se llama al usar el .new  Se define mediante initialize
  • 18. Variables  Variables de Instancia: @  Variables de Clase: @@  Variables Globales: $
  • 19. Métodos  Constructor  De instancia  De clase
  • 20. Herencia  Una clase puede heredar de otra  Se usa para definir la relación “es un”  Adulto es un Humano  En Ruby se usa el operador <
  • 21. 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
  • 22. Accesando al padre  Una vez que hemos sobrescrito un método, se puede accesar a este mediante el uso del super
  • 23. 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.
  • 24. Más Ejemplos  Los ejercicios de esta clase se encuentran en:  https://github.com/scyrizales/Ruby101/tree/master /TerceraClase  Contacto a @scyrizales (twitter, skype)