Si quieren limpiar la consola:
CTRL + L
Introducción
Lo que aprenderás sobre Ruby
Qué es Ruby y para qué sirve este lenguaje
Instalación de Ruby
Bases del lenguaje
Tipos de datos I: Integer, float
Tipos de datos II: Strings
Tipos de datos III: Symbols
Tipos de datos IV: Arrays
Tipos de datos V: Hashes
Uso de condicionales
Uso de ciclos
Rangos
Uso de Regex
Procs y lambdas
Programación Orientada a Objetos en Ruby Comenzando la creación de nuestra clase
Programación Orientada a Objetos en Ruby: Módulos
Programación Orientada a Objetos: Clases y Objetos
Concurrencia vs Paralelismo: Threads en Ruby
Bundler y gemas
Testing en Ruby
Testing con MiniTest
Diferencias entre Ruby 2.5 y 3
Proyecto
Introducción al proyecto
Instalar Ruby 2D
Overview Ruby 2D
Arquitectura
Estructurando el proyecto
Vista básica
Programando la base para los movimientos
Programando el movimiento de nuestro snake
Test de nuestras acciones
Implementando el timer del movimiento
Actualizando la vista
Preparando el cambio de dirección
Recapitulación de la arquitectura
Moviendo la serpiente con el teclado
Creciendo la serpiente y programando la condición de derrota
Generando comida aleatoria: uso de rand y stub en pruebas
Condición de salida y conclusiones
Retos del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Un array o arreglo es un tipo de datos especial donde vas a poder almacenar múltiples objetos en una sola variable.
Ejemplo:
letras = [ ""q"", ""w"", ""e"", ""r"", ""t"", ""y""]
Algo interesante de Ruby es que podemos utilizar números negativos para acceder a las posiciones desde el último elemento del array.
Los arreglos en Ruby no tienen un tipo específico, esto quiere decir que dentro de un array podemos tener diferentes tipos de datos en cada elemento.
Aportes 21
Preguntas 3
Si quieren limpiar la consola:
CTRL + L
Métodos:
Hola … esta bueno explicar para que usan "map"
es para manejar la inmutabilidad de la lista.
Osea, Es una buena practica en todos los lenguajes de programacion ahora modernos no mutar tu array original. Cuando queres trabajar sobre una lista y no modificar tu lista original, sino generar una nueva lista con los changes hechos.
Arrays
Un array (o lista) es un conjunto ordenado: cada posición en la lista es una variable que podemos leer y/o escribir.
- Un array puede ser un conjunto de elementos distintos
- Algunas veces, crear arrays de palabras puede ser tedioso debido a tantas comillas y comas. en Ruby podemos hacerlo de la siguiente manera « nombres2 = %w{ ann richard william susan pat }»
- El método each extrae cada elemento del array dentro de la variable que se le especifique (que irá entra dos barras | |), que se usará en bloque do…end.
- Método +: Con este método sumamos arrays. Es decir, le agregamos el contenido de uno al final del otro.
- Método –: De la misma manera podemos restar arrays.
- Método *: Muy parecido podemos multiplicar un array por un número.
- Método '<<': Al ya tener un array podemos agregarle nuevos objetos con el método
- Método &:A este método se le conoce como intersección por que retorna los elementos comunes de dos arrays sin duplicados.
- Conceptos extraídos de :
- http://rubytutorial.wikidot.com/arrays
- http://www.maestrosdelweb.com/la-clase-array-en-ruby/
Un Array es un tipo de dato especial donde vamos a poder almacenar múltiples objectos en una sola varibles
# Así escribimos un array
letras = ["a","b","c","d","e","f","g"]
# Para acceder a las posición de cada objeto, lo hacemos como en JS
letras[0]
Algo especial de Ruby es que podemos utilizar números negativos para acceder a posiciones desde el último elemento en el Array. Si utilizamos un número que exceda la cantidad de objetos que hay en el Array no mostrar ningún resultado.
letras[-1]
También podemos acceder al método methods con métodos
# Para ver que clases de objeto es methods
letras.methods.class
# Para cuánto objetos hay dentro de methods
letras.methods.size
Otros métodos que podemos utilizar para un Array son:
# Para saber si hay un elemento x dentro del array
letras.include? "a"
# Para saber cuál es el primer elemento
letras.first
# Para saber cuál es el último elemento
letras.last
Con el método .count podemos especificar una condición, es como una mini función, recibe un parámetro y podemos preguntar algo sobre el parámetro
# Estamos preguntando cuántos elementos son iguales a "q"
letras.count { |x| x == "q" }
# Estamos preguntando cuántos elementos son pares
[1,2,3,4,5].count { |x| x.even? }
# El método .map se utiliza para transformar cada uno de los elementos del array
[1,2,3,4,5].map { |x| x*2 }
# El método .select es equivalente al método .filter de JS. Se encarga de filtrar algunos elementos que cumplan con una condición
[1,2,3,4,5].select { |x| x.odd? }
# Nos retorna el elemento más pequeño
[1,2,3,4,5].min
# Nos retorna el elemento más grande
[1,2,3,4,5].max
# Va sumar todos los elementos del Array
[1,2,3,4,5].sum
Algo a tener en cuenta es que los Arrays en Ruby no tienen un tipo es específico, lo cual quiere decir que pueden ser de diferentes tipos.
array_1 = [1, 4.5, "string", :symbol, []]
array_1.map { |x| x.class }
Algunos Strings retornar Arrays.
"Hola mundo".split(" ") # ["Hola","mundo"]
"Hola mundo".split(" ").size # 2
"Hola mundo".split(" ").map { |x| x.upcase } # ["HOLA", "MUNDO"]
puts("Hola mundo".split(" ").map { |x| x.upcase }.join("\n") )
# HOLA
# MUNDO
# El siguiente método puede ordenar el Array
["r","i","c","w","e","f","a"].sort # ["c", "i", "r", "w"]
Para agregar elementos a un array podemos usar:
push inserta el elemento al final del array:
arr = [1, 2, 3, 4] arr.push(5) #=> [1, 2, 3, 4, 5] arr << 6 #=> [1, 2, 3, 4, 5, 6]
unshift Inserta el elemento al inicio del array:
arr.unshift(0) #=> [0, 1, 2, 3, 4, 5, 6]
insert Agrega un elemento en la posición que queramos:
arr.insert(3, 'apple') #=> [0, 1, 2, 'apple', 3, 4, 5, 6]
nota: el insert nos permite insertar uno o mas elementos dentro del array al mismo tiempo
Ordenar los methods: <array>.methods.sort
Porque todo en ruby es un objeto, muy interesante.
Pues anda, muy similar a Javascript
pero por que |x| que es lo que eso hace ?
Creo que deberían explicar mejor que es un lambda antes de pasar a usarlos
Esto es interesante, yo estoy usando ruby 2.7 y me da 10 nuevos metodos en Array.methods.size
estaria padre poder saber cuales se agregaron desde la 2.5 que usa el profesor.
inlcuso ayer que salio la version 3.0 de ruby, ver esto mismo.
Los arreglos son usados para cuando necesitas trabajar con un grupo grande de elementos similares.
Una pequeña lista de métodos para arreglos:
length ¿qué tan grande es este arreglo? (cuántos elementos)
first obtiene el primer elemento del arreglo (lo mismo que arreglo[0])
last obtiene el último elemento del arreglo (lo mismo que arreglo[-1])
push agrega un nuevo elemento al final del arreglo
pop elimina (y regresa) el último elemento del arreglo
Hola explicas mas adelante la diferencia entre procs, lambda, y lo que es yield y el uso de bloques en general? Ando algo perdida con respecto a eso. Gracias.
Los tipos de datos básicos en ruby son 6
Para conocer la API de los distintos tipos y demás, puedes ir a este link 👈 (El link proporcionado es de la versión 3.1.2)
En esta lista puedes encontrar los links a la documentación de cada uno de los tipos de datos, donde puedes visitar para ver los distintos metodos que puedes usar con cada tipo de dato disponible.
Estos tipos de datos son base, pues de ellos pueden salir otros tipos más, como pueden ser el tipo Integer, Float, entre otros.
letras.count{ |x| x == “y” }
Con “puts” siempre se crea una nueva linea asi que no es necesario el .join ("\n")
Tambien se puede ocupar << en vez de push.
Meclando marca personal con el curso de Ruby https://www.instagram.com/p/B6gr6rDH81s/
no me funciona el ‘method’ sum, a alguien mas le pasa?
irb(main):158:0> numeros.sum
NoMethodError: undefined method `sum' for [1, 2, 3, 4, 5]:Array
from (irb):158
from /usr/bin/irb:11:in `<main>'
irb(main):159:0> [1, 2, 3, 4, 5].sum
NoMethodError: undefined method `sum' for [1, 2, 3, 4, 5]:Array
from (irb):159
from /usr/bin/irb:11:in `<main>'
irb(main):160:0>```
Hola comunidad ¿Cuál creen que es la diferencias entre métodos count y size para determinar el tamaño de un array?
ejemplo :
color = :rojo
color2 = :rojo
color = color2 (en el id)
Los simbols no son strings
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?