0Pricing
Ruby Academy · Lección

Valores predeterminados y combinación

fetch, merge, dig

Valores predeterminados y combinación es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 4 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.

El problema de nil

Leer una clave inexistente devuelve nil, lo que puede causar sorpresas en operaciones matemáticas o lógicas. Ruby ofrece formas más seguras de gestionar la ausencia de valores.

h = { a: 1 }
puts h[:b].inspect

fetch para un acceso seguro

fetch devuelve el valor o produce un error claro si falta la clave. Úselo cuando la clave sea obligatoria.

h = { name: "Ada" }
puts h.fetch(:name)

fetch con un valor predeterminado

Proporcione a fetch un segundo argumento como alternativa, que se usará únicamente cuando falte la clave.

h = { name: "Ada" }
puts h.fetch(:age, 0)
puts h.fetch(:name, "Unknown")

fetch con un bloque

Pase un bloque para calcular la alternativa de forma diferida. El bloque se ejecuta solo cuando no se encuentra la clave.

h = {}
puts h.fetch(:x) { "computed default" }

Hash con un valor predeterminado

Hash.new(default) devuelve el valor predeterminado para cualquier clave inexistente en lugar de nil. El valor predeterminado se comparte, por lo que es preferible usar esta forma con valores inmutables sencillos.

counts = Hash.new(0)
counts[:a] += 1
counts[:a] += 1
puts counts[:a]
puts counts[:b]

Valor predeterminado con un bloque

Hash.new { |hash, key| ... } calcula un valor predeterminado nuevo para cada clave, lo que resulta ideal para agrupar elementos en matrices.

groups = Hash.new { |h, k| h[k] = [] }
groups[:fruit] << "apple"
groups[:fruit] << "pear"
puts groups[:fruit].inspect

Contar con valores predeterminados

Un valor predeterminado de 0 hace que contar palabras sea sencillo y claro.

words = ["a", "b", "a", "a"]
count = Hash.new(0)
words.each { |w| count[w] += 1 }
puts count

Combinar hashes

merge combina dos hashes en uno nuevo. En caso de conflicto, prevalecen las claves del segundo hash.

defaults = { color: "red", size: "M" }
user = { color: "blue" }
puts defaults.merge(user)

Combinar con un bloque

Pase un bloque a merge para resolver conflictos, por ejemplo, sumando los valores.

a = { x: 1, y: 2 }
b = { y: 3, z: 4 }
puts a.merge(b) { |key, old, new| old + new }

Acceso seguro a hashes anidados con dig

dig lee hashes anidados de forma segura y devuelve nil si falta cualquier nivel, en lugar de producir un error.

data = { user: { address: { city: "London" } } }
puts data.dig(:user, :address, :city)
puts data.dig(:user, :phone, :home).inspect

Combinar las herramientas

Use valores predeterminados y merge conjuntamente para crear una configuración a partir de valores base y sobrescrituras.

base = { retries: 3, timeout: 30 }
options = base.merge(timeout: 60)
puts options.fetch(:timeout)

Comprobación rápida

Compruebe sus conocimientos sobre valores predeterminados y combinación de hashes.

Resumen

Ahora puede gestionar los datos faltantes correctamente:

  • fetch con un valor predeterminado, un bloque o un error estricto
  • Hash.new(0) y valores predeterminados mediante bloques para contar y agrupar
  • merge con bloques para resolver conflictos
  • dig para acceder de forma segura a datos anidados

Siguiente curso: rangos y Enumerable.

c = Hash.new(0)
c[:hits] += 1
puts c[:hits]

Preguntas frecuentes

¿La lección «Valores predeterminados y combinación» es gratis?

Sí — el texto completo de «Valores predeterminados y combinación» 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 «Valores predeterminados y combinación»?

fetch, merge, dig 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 4 de 4.

¿Cuánto tiempo toma la lección «Valores predeterminados y combinación»?

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. Symbols frente a strings
  2. Creación y lectura de hashes
  3. Iteración de hashes
  4. Valores predeterminados y combinación
← Volver a Ruby Academy