Menu
Coddy logo textTech

Modificare gli hash

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 75 di 88.

Gli hash non sono statici una volta creati. Puoi aggiungere nuove coppie chiave-valore, aggiornare i valori esistenti e rimuovere voci mentre il programma è in esecuzione.

Per aggiungere una nuova coppia o aggiornare un valore esistente, assegna un valore alla chiave usando le parentesi quadre:

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

person["city"] = "Paris"      # Aggiunge una nuova coppia chiave-valore
person["age"] = 26            # Aggiorna il valore esistente

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

Se la chiave esiste, il valore viene sostituito. Se non esiste, viene aggiunta una nuova coppia all'hash.

Per rimuovere una coppia chiave-valore, usa il metodo delete con la chiave che vuoi rimuovere:

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

person.delete("city")

puts person  # Produce: {"name"=>"Alice", "age"=>25}

Il metodo delete restituisce il valore che è stato rimosso, il che può essere utile se devi usarlo:

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

removed_age = person.delete("age")

puts removed_age  # Output: 25

Se provi a eliminare una chiave che non esiste, Ruby restituisce semplicemente nil senza generare un errore.

challenge icon

Sfida

Facile

Leggi quattro righe di input:

  1. Il nome di uno studente (stringa)
  2. Un voto iniziale (intero)
  3. Un nuovo voto da aggiornare (intero)
  4. Una nuova coppia chiave-valore nel formato key:value (ad es., subject:Math)

Crea un hash chiamato student con le seguenti coppie chiave-valore iniziali:

  • "name" associata al nome dello studente
  • "grade" associata al voto iniziale (come intero)

Quindi esegui queste modifiche:

  1. Aggiorna la chiave "grade" con il nuovo valore del voto
  2. Aggiungi una nuova coppia chiave-valore usando la chiave e il valore del quarto input (il valore deve rimanere una stringa)
  3. Elimina la chiave "name" dall'hash e memorizza il valore rimosso

Stampa il nome rimosso sulla prima riga, quindi stampa l'hash finale sulla seconda riga.

Ad esempio, se gli input sono Alice, 85, 92 e subject:Math, l'output dovrebbe essere:

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

Se gli input sono Bob, 70, 75 e status:passing, l'output dovrebbe essere:

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

Se gli input sono Charlie, 100, 95 e note:excellent, l'output dovrebbe essere:

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

Provalo tu

# Leggi l'input
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp

# TODO: Scrivi il tuo codice qui sotto
# 1. Crea un hash chiamato 'student' con le chiavi "name" e "grade"
# 2. Aggiorna la chiave "grade" con il nuovo voto
# 3. Analizza key_value_pair e aggiungilo all'hash
# 4. Elimina la chiave "name" e memorizza il valore rimosso

# Stampa il nome rimosso
puts removed_name
# Stampa l'hash finale
puts student
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Ruby online