Ruby 101 session 2
-
Upload
sergio-castillo -
Category
Documents
-
view
524 -
download
0
description
Transcript of Ruby 101 session 2
ARREGLOS, HASHES Y MÉTODOS
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 parametrosEl ú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/Se
gundaClase
Muchas gracias