Menu
Coddy logo textTech

Modificando Hashes

Parte da seção Fundamentos do Journey de Ruby da Coddy. Lição 75 de 88.

Hashes não são estáticos depois de criados. Você pode adicionar novos pares chave-valor, atualizar valores existentes e remover entradas conforme seu programa é executado.

Para adicionar um novo par ou atualizar um valor existente, atribua à chave usando colchetes:

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

person["city"] = "Paris"      # Adiciona um novo par chave-valor
person["age"] = 26            # Atualiza o valor existente

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

Se a chave existir, o valor é substituído. Se não existir, um novo par é adicionado ao hash.

Para remover um par chave-valor, use o método delete com a chave que você deseja remover:

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

person.delete("city")

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

O método delete retorna o valor que foi removido, o que pode ser útil se você precisar usá-lo:

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

removed_age = person.delete("age")

puts removed_age  # Saída: 25

Se você tentar excluir uma chave que não existe, o Ruby simplesmente retorna nil sem gerar um erro.

challenge icon

Desafio

Fácil

Leia quatro linhas de entrada:

  1. Um nome de aluno (string)
  2. Uma nota inicial (inteiro)
  3. Uma nova nota para atualizar (inteiro)
  4. Um novo par chave-valor no formato key:value (ex: subject:Math)

Crie um hash chamado student com os seguintes pares chave-valor iniciais:

  • "name" mapeado para o nome do aluno
  • "grade" mapeado para a nota inicial (como um inteiro)

Em seguida, realize estas modificações:

  1. Atualize a chave "grade" com o novo valor da nota
  2. Adicione um novo par chave-valor usando a chave e o valor da quarta entrada (o valor deve permanecer como uma string)
  3. Exclua a chave "name" do hash e armazene o valor removido

Imprima o nome removido na primeira linha e, em seguida, imprima o hash final na segunda linha.

Por exemplo, se as entradas forem Alice, 85, 92 e subject:Math, a saída deve ser:

Alice
{"grade"=>92, "subject"=>"Math"}

Se as entradas forem Bob, 70, 75 e status:passing, a saída deve ser:

Bob
{"grade"=>75, "status"=>"passing"}

Se as entradas forem Charlie, 100, 95 e note:excellent, a saída deve ser:

Charlie
{"grade"=>95, "note"=>"excellent"}

Experimente você mesmo

# Ler entrada
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Escreva seu código abaixo
# 1. Crie um hash chamado 'student' com as chaves "name" e "grade"
# 2. Atualize a chave "grade" com o novo valor de nota
# 3. Analise o key_value_pair e adicione-o ao hash
# 4. Exclua a chave "name" e armazene o valor removido

# Exibir o nome removido
puts removed_name
# Exibir o hash final
puts student
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