Menu
CoddyTech

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 de la flecha de hash. Sin embargo, los desarrolladores de Ruby suelen usar símbolos como claves, lo que ofrece un enfoque más limpio y eficiente.

¿Recuerdas los símbolos de antes? Son identificadores ligeros e inmutables que empiezan con dos puntos. Al usar símbolos como claves, Ruby ofrece 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 =>. Esta abreviatura solo funciona cuando la clave es un símbolo. Para acceder a los valores, usa el símbolo con corchetes:

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

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

Añadir y modificar entradas funciona de la misma manera:

person = {name: "Alice"}

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

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

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

challenge icon

Desafío

Fácil

Lee tres líneas de entrada:

  1. Una marca de automóvil (cadena)
  2. Un nombre de modelo (cadena)
  3. Un año (entero)

Crea un hash llamado car usando la sintaxis abreviada de símbolos (p. ej., key: value) con los siguientes pares clave-valor:

  • :brand asociado con la marca del automóvil
  • :model asociado con el nombre del modelo
  • :year asociado con el año (como entero)

Después, 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

# Lee la 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. Añade 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

Practica por tu cuenta: Compilador de Ruby online