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: 25Se provi a eliminare una chiave che non esiste, Ruby restituisce semplicemente nil senza generare un errore.
Sfida
FacileLeggi quattro righe di input:
- Il nome di uno studente (stringa)
- Un voto iniziale (intero)
- Un nuovo voto da aggiornare (intero)
- 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:
- Aggiorna la chiave
"grade"con il nuovo valore del voto - Aggiungi una nuova coppia chiave-valore usando la chiave e il valore del quarto input (il valore deve rimanere una stringa)
- 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 studentQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falsoEsercitati da solo: Compilatore Ruby online