Menu
Coddy logo textTech

Símbolos como claves de Hash

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

Hasta ahora, has estado usando cadenas como claves de hash con la sintaxis hash rocket. Sin embargo, los desarrolladores de Ruby suelen usar símbolos como claves en su lugar, lo que ofrece un enfoque más limpio y eficiente.

¿Recuerdas los símbolos de antes? Son identificadores ligeros e inmutables que comienzan con dos puntos. Al usar símbolos como claves, Ruby proporciona una sintaxis abreviada especial:

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

puts person  # Salida: {:name=>"Alice", :age=>25, :city=>"Paris"}

Observa cómo name: reemplaza a :name =>. Este atajo solo funciona cuando la clave es un símbolo. Para acceder a los valores, utiliza el símbolo con corchetes:

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

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

Agregar y modificar entradas funciona de la misma manera:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

puts person  # Salida: {:name=>"Bob", :city=>"Paris"}

Los símbolos se prefieren como claves de hash porque son más rápidos de comparar que las cadenas y consumen menos memoria. Verás este patrón en todo el código de Ruby, por lo que vale la pena familiarizarse con él.

challenge icon

Desafío

Fácil

Lee tres líneas de entrada:

  1. Una marca de coche (string)
  2. Un nombre de modelo (string)
  3. Un año (integer)

Crea un hash llamado car utilizando la sintaxis abreviada de símbolos (por ejemplo, key: value) con los siguientes pares clave-valor:

  • :brand mapeado a la marca del coche
  • :model mapeado al nombre del modelo
  • :year mapeado al año (como un entero)

Luego realiza estas operaciones:

  1. Imprime el valor de la clave :model
  2. Añade una nueva clave :color con el valor "black"
  3. Actualiza la clave :year sumando 1 a su valor actual
  4. Imprime el hash final

Por ejemplo, si las entradas son Toyota, Camry, y 2020, la salida debería ser:

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

Si las entradas son Honda, Civic, y 2018, la salida debería ser:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

Si las entradas son Ford, Mustang, y 2023, la salida debería ser:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

Pruébalo tú mismo

# Leer entrada
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: Escribe tu código a continuación
# 1. Crea un hash llamado 'car' usando la sintaxis abreviada de símbolos con las claves :brand, :model y :year

# 2. Imprime el valor de la clave :model

# 3. Agrega una nueva clave :color con el valor "black"

# 4. Actualiza la clave :year sumando 1 a su valor actual

# 5. Imprime el hash final
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