Menu
Coddy logo textTech

Símbolos como Chaves de Hash

Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 78 de 88.

Até agora, você tem usado strings como chaves de hash com a sintaxe hash rocket. No entanto, desenvolvedores Ruby comumente usam símbolos como chaves, o que oferece uma abordagem mais limpa e eficiente.

Lembra-se dos símbolos vistos anteriormente? Eles são identificadores leves e imutáveis que começam com dois-pontos. Ao usar símbolos como chaves, o Ruby fornece uma sintaxe abreviada especial:

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

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

Observe como name: substitui :name =>. Este atalho só funciona quando a chave é um símbolo. Para acessar os valores, use o símbolo com colchetes:

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

puts person[:name]  # Saída: Alice
puts person[:age]   # Saída: 25

Adicionar e modificar entradas funciona da mesma forma:

person = {name: "Alice"}

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

puts person  # Saída: {:name=>"Bob", :city=>"Paris"}

Símbolos são preferidos como chaves de hash porque são mais rápidos de comparar do que strings e usam menos memória. Você verá esse padrão em todo o código Ruby, então vale a pena se familiarizar com ele.

challenge icon

Desafio

Fácil

Leia três linhas de entrada:

  1. Uma marca de carro (string)
  2. Um nome de modelo (string)
  3. Um ano (inteiro)

Crie um hash chamado car usando a sintaxe abreviada de símbolos (ex: key: value) com os seguintes pares chave-valor:

  • :brand mapeado para a marca do carro
  • :model mapeado para o nome do modelo
  • :year mapeado para o ano (como um inteiro)

Em seguida, realize estas operações:

  1. Imprima o valor da chave :model
  2. Adicione uma nova chave :color com o valor "black"
  3. Atualize a chave :year adicionando 1 ao seu valor atual
  4. Imprima o hash final

Por exemplo, se as entradas forem Toyota, Camry, e 2020, a saída deve ser:

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

Se as entradas forem Honda, Civic, e 2018, a saída deve ser:

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

Se as entradas forem Ford, Mustang, e 2023, a saída deve ser:

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

Folha de consulta

Ruby fornece uma sintaxe abreviada para criar hashes com chaves de símbolos:

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

Isso é equivalente a usar a sintaxe hash rocket com símbolos:

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

Para acessar valores de um hash com chaves de símbolos, use colchetes com o símbolo:

puts person[:name]  # Saída: Alice
puts person[:age]   # Saída: 25

Adicionar e modificar entradas funciona da mesma forma que com chaves de string:

person[:city] = "Paris"  # Adiciona um novo par chave-valor
person[:name] = "Bob"    # Modifica o valor existente

Símbolos são preferidos como chaves de hash porque são mais rápidos de comparar do que strings e usam menos memória.

Experimente você mesmo

# Ler a entrada
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: Escreva seu código abaixo
# 1. Crie um hash chamado 'car' usando a sintaxe abreviada de símbolos com as chaves :brand, :model e :year

# 2. Imprima o valor da chave :model

# 3. Adicione uma nova chave :color com o valor "black"

# 4. Atualize a chave :year adicionando 1 ao seu valor atual

# 5. Imprima o hash final
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos