Simboli come chiavi degli hash
Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 78 di 88.
Finora hai usato le stringhe come chiavi degli hash con la sintassi della freccia hash. Tuttavia, gli sviluppatori Ruby usano comunemente i simboli come chiavi, un approccio più pulito ed efficiente.
Ricordi i simboli visti in precedenza? Sono identificatori leggeri e immutabili che iniziano con i due punti. Quando usi i simboli come chiavi, Ruby mette a disposizione una sintassi abbreviata speciale:
person = {name: "Alice", age: 25, city: "Paris"}
puts person # Produce: {:name=>"Alice", :age=>25, :city=>"Paris"}Nota come name: sostituisce :name =>. Questa forma abbreviata funziona solo quando la chiave è un simbolo. Per accedere ai valori, usa il simbolo tra parentesi quadre:
person = {name: "Alice", age: 25}
puts person[:name] # Stampa: Alice
puts person[:age] # Stampa: 25Aggiungere e modificare le voci funziona allo stesso modo:
person = {name: "Alice"}
person[:city] = "Paris"
person[:name] = "Bob"
puts person # Mostra: {:name=>"Bob", :city=>"Paris"}I simboli sono preferiti come chiavi hash perché sono più veloci da confrontare rispetto alle stringhe e usano meno memoria. Vedrai questo schema in tutto il codice Ruby, quindi vale la pena prenderci confidenza.
Sfida
FacileLeggi tre righe di input:
- Una marca di auto (stringa)
- Il nome di un modello (stringa)
- Un anno (intero)
Crea un hash chiamato car usando la sintassi abbreviata dei simboli (ad es. key: value) con le seguenti coppie chiave-valore:
:brandassociata alla marca dell'auto:modelassociata al nome del modello:yearassociata all'anno (come intero)
Poi esegui queste operazioni:
- Stampa il valore della chiave
:model - Aggiungi una nuova chiave
:colorcon il valore"black" - Aggiorna la chiave
:yearaggiungendo 1 al suo valore attuale - Stampa l'hash finale
Ad esempio, se gli input sono Toyota, Camry e 2020, l'output dovrebbe essere:
Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}Se gli input sono Honda, Civic e 2018, l'output dovrebbe essere:
Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}Se gli input sono Ford, Mustang e 2023, l'output dovrebbe essere:
Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}Provalo tu
# Leggi l'input
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i
# TODO: Scrivi il tuo codice qui sotto
# 1. Crea un hash chiamato 'car' usando la sintassi abbreviata dei simboli con le chiavi :brand, :model e :year
# 2. Stampa il valore della chiave :model
# 3. Aggiungi una nuova chiave :color con il valore "black"
# 4. Aggiorna la chiave :year aggiungendo 1 al suo valore attuale
# 5. Stampa l'hash finaleQuesta 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 dinamico11Array
Creare arrayAccedere agli elementi di un arrayModificare gli arrayMetodi degli arrayRiepilogo - Array dei prodottiRiepilogo - Array invertitoScorciatoie per gli array14Hash
Creare gli hashAccedere agli elementi di un hashModificare gli hashMetodi degli hashRiepilogo - Hash del prodottoSimboli come chiavi degli hash3Operatori, 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