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"}

Hoja de referencia

Ruby proporciona una sintaxis abreviada para crear hashes con claves de símbolo:

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

Esto es equivalente a usar la sintaxis de "hash rocket" con símbolos:

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

Para acceder a los valores de un hash con claves de símbolo, utiliza corchetes con el símbolo:

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

Agregar y modificar entradas funciona de la misma manera que con las claves de cadena:

person[:city] = "Paris"  # Agregar un nuevo par clave-valor
person[:name] = "Bob"    # Modificar el valor existente

Se prefieren los símbolos como claves de hash porque son más rápidos de comparar que las cadenas y utilizan menos memoria.

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