SlideShare una empresa de Scribd logo
1 de 24
A R R E G L O S , H A S H E S Y M É T O D O S
Ruby 101
Sergio Castillo Yrizales
@scyrizales
Agenda
 Arreglos
 Hashes
 Métodos
Arreglos
Arreglos
 Estructura de datos que permite almacenar varios
valores en una sola variable
Iterando sobre arreglos
 Se usa el comando .each para recorrer arreglos
.times
 Sirve para repetir un bloque cierto numero de veces
Arreglos de Arreglos
 Los elementos de un arreglo… pueden ser otros
arreglos 
Iterando sobre Arreglos Multidimensionales
 Usando doble .each
Hashes
¿Qué es un Hash?
 Los arreglos se indexan por números
 Se accesan a ellos con la sintaxis
 Los hashes se indexan por cualquier dato
Creando un Hash
 En otros lenguajes los pueden encontrar como
diccionarios
Creando un Hash II
 Tambien se pueden crear asi:
 Y le agregamos datos de esta forma:
 Y recuperamos la data asi:
Hashes. Valor por defecto
 El valor que se usa en el constructor será el valor por
defecto
Iterando sobre Hashes
 Con el comando each y la sintaxis |key, value|
Ordenando Hashes
 El ordenamiento se puede realizar por key o por
value:
 Donde a es “key” y b es “value”
Reto: Contemos palabras
 Construiremos un histograma que nos ayude a
contar cuantas veces se repiten las palabras en un
texto.
 Si ingresamos: “La lluvia que cayo en Lima mojo la
calle” debe retornar
Métodos
Como crear un metodo
 De la siguiente forma
 ** es potencia
return
 Sirve para devolver un valor
 Ambas son equivalentes
 Ruby siempre devolvera el
resultado de la última expresión
que evalue dentro del método
splats
 Cantidad indefinida de parametros
 El último tiene que tener *
 Se comporta como un arreglo
Ordenamiento
 Usamos el metodo sort para ordenar un arreglo
 Podemos usar <=> para comparar
 -1 si el primero es mayor, 0 iguales, 1 segundo mayor
Ordenemos la biblioteca
 Ingresaremos una lista de libros
 Definimos un metodo para ordenarlos
 Mediante un parametro debemos poder ordenar
ascendente o descendente
Materiales de esta sesión
 Los pueden encontrar en:
 https://github.com/scyrizales/Ruby101/tree/master/Segunda
Clase
Ruby 101 session 2

Más contenido relacionado

Destacado

Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding DojoGuilherme
 
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 RailsAncorCruz
 
Curso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de DeustoCurso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de Deustoestialvarez
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLJosé Alfredo Ramírez
 
Ruby Mola (y por qué)
Ruby Mola (y por qué)Ruby Mola (y por qué)
Ruby Mola (y por qué)Sergio Gil
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosAlberto Perdomo
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao rubyFrancis Wagner
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven DevelopmentAlberto Perdomo
 
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ácticasAlberto Perdomo
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on RailsASPgems
 
Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2estialvarez
 

Destacado (20)

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 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 session 4
Ruby 101 session 4Ruby 101 session 4
Ruby 101 session 4
 
Ruby 101
Ruby 101Ruby 101
Ruby 101
 
Ruby101
Ruby101Ruby101
Ruby101
 
Ruby On Rails (Parte II))
Ruby On Rails (Parte II))Ruby On Rails (Parte II))
Ruby On Rails (Parte II))
 
Curso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de DeustoCurso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de Deusto
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
Ruby Mola (y por qué)
Ruby Mola (y por qué)Ruby Mola (y por qué)
Ruby Mola (y por qué)
 
Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte 1. Introducción)Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte 1. Introducción)
 
Ruby 101 session 3
Ruby 101 session 3Ruby 101 session 3
Ruby 101 session 3
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitarios
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven Development
 
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
 
Taller ruby
Taller rubyTaller ruby
Taller ruby
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2
 

Similar a Ruby 101 session 2

OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)Oscar V
 
15 Tablas Hash
15 Tablas Hash15 Tablas Hash
15 Tablas HashUVM
 
Funcion resumen
Funcion resumenFuncion resumen
Funcion resumenG Hoyos A
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisionesemiru48
 
Ezequiel Barbón Fernández
Ezequiel Barbón FernándezEzequiel Barbón Fernández
Ezequiel Barbón Fernándezedi.euitio
 
Edi Tablas Hash
Edi Tablas HashEdi Tablas Hash
Edi Tablas HashLarriusmen
 
Tablas Hash Fash Vmaa
Tablas Hash Fash VmaaTablas Hash Fash Vmaa
Tablas Hash Fash Vmaavicomanuel
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Carlos A. Iglesias
 

Similar a Ruby 101 session 2 (17)

Hashing
HashingHashing
Hashing
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 6 de 7(Colecciones y Genericos)
 
EXPOSICION HASH
EXPOSICION HASHEXPOSICION HASH
EXPOSICION HASH
 
15 Tablas Hash
15 Tablas Hash15 Tablas Hash
15 Tablas Hash
 
Tutorial de php
Tutorial de phpTutorial de php
Tutorial de php
 
PHP: Arrays
PHP: ArraysPHP: Arrays
PHP: Arrays
 
Funcion resumen
Funcion resumenFuncion resumen
Funcion resumen
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Ezequiel Barbón Fernández
Ezequiel Barbón FernándezEzequiel Barbón Fernández
Ezequiel Barbón Fernández
 
Edi Tablas Hash
Edi Tablas HashEdi Tablas Hash
Edi Tablas Hash
 
tablas hash
tablas hashtablas hash
tablas hash
 
tablas hash
tablas hashtablas hash
tablas hash
 
Ensayo iv
Ensayo ivEnsayo iv
Ensayo iv
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Tablas Hash Fash Vmaa
Tablas Hash Fash VmaaTablas Hash Fash Vmaa
Tablas Hash Fash Vmaa
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.
 
Vectores
VectoresVectores
Vectores
 

Más 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
 

Más 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
 

Ruby 101 session 2