Menu
Coddy logo textTech

Acceder a elementos del Hash

Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 74 de 88.

Ahora que sabes cómo crear hashes, necesitas recuperar los valores almacenados dentro de ellos. A diferencia de los arreglos (arrays) donde usas índices numéricos, los hashes usan llaves (keys) para acceder a sus valores.

Coloque la clave dentro de corchetes para obtener su valor correspondiente:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person["name"]  # Salida: Alice
puts person["age"]   # Salida: 25

La clave debe coincidir exactamente con la que usaste al crear el hash. Si intentas acceder a una clave que no existe, Ruby devuelve nil:

person = {"name" => "Alice", "age" => 25}

puts person["country"]  # Salida: (nada - nil)

También puedes usar el método fetch, que te permite proporcionar un valor por defecto cuando falta la clave:

person = {"name" => "Alice"}

puts person.fetch("name", "Unknown")     # Salida: Alice
puts person.fetch("country", "Unknown")  # Salida: Unknown

Esto es útil cuando quieres manejar claves faltantes de manera elegante en lugar de obtener nil.

challenge icon

Desafío

Fácil

Lee cuatro líneas de entrada:

  1. Un nombre de producto (string)
  2. Un precio (float)
  3. Una cantidad en stock (integer)
  4. Una clave para buscar (string)

Crea un hash llamado product con los siguientes pares clave-valor:

  • "name" mapeado al nombre del producto
  • "price" mapeado al precio (como un float)
  • "stock" mapeado a la cantidad (como un entero)

Luego, utiliza el método fetch para recuperar el valor de la clave proporcionada en la cuarta entrada. Si la clave no existe, utiliza "Not found" como valor predeterminado. Imprime el resultado.

Por ejemplo, si las entradas son Laptop, 999.99, 15, y price, la salida debería ser:

999.99

Si las entradas son Keyboard, 49.99, 100, y name, la salida debería ser:

Keyboard

Si las entradas son Mouse, 29.99, 50, y color, la salida debería ser:

Not found

Si las entradas son Monitor, 299.0, 8, y stock, la salida debería ser:

8

Hoja de referencia

Para acceder a los valores en un hash, utiliza la clave dentro de corchetes:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person["name"]  # Salida: Alice
puts person["age"]   # Salida: 25

Si una clave no existe, Ruby devuelve nil:

person = {"name" => "Alice", "age" => 25}

puts person["country"]  # Salida: (nada - nil)

Utiliza el método fetch para proporcionar un valor predeterminado para las claves que faltan:

person = {"name" => "Alice"}

puts person.fetch("name", "Unknown")     # Salida: Alice
puts person.fetch("country", "Unknown")  # Salida: Unknown

Pruébalo tú mismo

# Leer la entrada
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp

# TODO: Escribe tu código a continuación
# Crea un hash llamado 'product' con las claves "name", "price" y "stock"
# Luego usa el método fetch para recuperar el valor de key_to_lookup
# Usa "Not found" como valor predeterminado si la clave no existe


# Mostrar el resultado
puts result
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos