Menu
CoddyTech

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ê usou strings como chaves de hash com a sintaxe de hash rocket. No entanto, desenvolvedores Ruby costumam usar símbolos como chaves, o que oferece uma abordagem mais limpa e eficiente.

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

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

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

Observe como name: substitui :name =>. Essa forma abreviada só funciona quando a chave é um símbolo. Para acessar valores, use o símbolo entre colchetes:

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

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

Adicionar e modificar entradas funciona da mesma forma:

person = {name: "Alice"}

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

puts person  # Exibe: {: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 (por exemplo, key: value) com os seguintes pares chave-valor:

  • :brand associado à marca do carro
  • :model associado ao nome do modelo
  • :year associado ao ano (como um inteiro)

Em seguida, execute 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 deverá ser:

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

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

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

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

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

Experimente você mesmo

# Leia 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

Pratique por conta própria: Compilador de Ruby online