Ruby Academy · Lección

Patrones de arrays y hashes

Desestructure datos

Lección 2 de 413 pasos

Patrones de arrays y hashes es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.

Patrones de array

Un patrón de array hace coincidir la posición y la longitud. Cada patrón de elemento se comprueba con el elemento correspondiente.

case [1, 2, 3]
in [1, 2, 3]
  puts 'exact match'
end

Asociar elementos de un array

Use identificadores para capturar cada posición en una variable.

case [10, 20]
in [x, y]
  puts(x + y)
end

La longitud importa

De forma predeterminada, un patrón de array requiere la longitud exacta. Un patrón de dos elementos no coincidirá con un array de tres elementos.

case [1, 2, 3]
in [a, b]
  puts 'two'
in [a, b, c]
  puts 'three'
end

El splat para el resto

Un splat *rest captura cualquier cantidad de elementos restantes en un array, lo que hace flexible la longitud.

case [1, 2, 3, 4]
in [first, *rest]
  puts(first)
  p rest
end

Splat en el medio

El splat puede situarse entre elementos fijos para capturar el principio y el final mientras ignora la parte intermedia.

case [1, 2, 3, 4, 5]
in [first, *, last]
  puts("#{first} ... #{last}")
end

Patrones de hash

Un patrón de hash hace coincidir las claves. Comprueba que las claves indicadas existan y que sus valores coincidan; se permiten claves adicionales.

case { name: 'Ada', age: 36 }
in { name: 'Ada' }
  puts 'found Ada'
end

Asociar valores de un hash

Capture un valor proporcionando a la clave un nombre de asociación. Si escribe solo la clave, se asocia una variable con el mismo nombre.

case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
  puts("#{n} is #{a}")
end

Asociación abreviada de claves

Omitir el patrón después de una clave asocia automáticamente una variable cuyo nombre se basa en la clave.

case { city: 'Istanbul' }
in { city: }
  puts(city)
end

Exigir que no haya claves adicionales

De forma predeterminada, los patrones de hash ignoran las claves adicionales. Añada **nil para exigir que estén presentes únicamente las claves enumeradas.

case { a: 1 }
in { a: 1, **nil }
  puts 'exactly one key'
end

Patrones anidados

Los patrones pueden anidarse libremente, lo que permite desestructurar estructuras profundas en una sola rama.

data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
  puts("#{name}: #{first_tag}")
end

Hacer coincidir JSON analizado

La coincidencia de patrones funciona especialmente bien con datos JSON o CSV analizados, ya que extrae exactamente los campos que necesita.

require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
  puts(items.sum)
end

Comprobación rápida

De forma predeterminada, ¿el patrón de hash in { a: 1 } coincidirá con el hash { a: 1, b: 2 }?

Repaso: patrones de array y hash

Puede desestructurar colecciones:

  • Los patrones de array hacen coincidir la posición y la longitud
  • *rest captura los elementos restantes
  • Los patrones de hash hacen coincidir las claves y permiten claves adicionales
  • La forma abreviada { key: } asocia variables con el mismo nombre
  • **nil prohíbe las claves adicionales; los patrones pueden anidarse profundamente
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
end
Gratis para empezar

Aprende Ruby con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
29
Lecciones
109

Preguntas frecuentes

¿La lección «Patrones de arrays y hashes» es gratis?

Sí — el texto completo de «Patrones de arrays y hashes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Patrones de arrays y hashes»?

Desestructure datos Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ruby Academy?

No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Patrones de arrays y hashes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?

Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos básicos de case/in
  2. Patrones de arrays y hashes
  3. Patrones find y guardas
  4. Casos de uso prácticos
← Volver a Ruby Academy