0Pricing
Ruby Academy · Lezione

Valori predefiniti e fusione

fetch, merge, dig

Valori predefiniti e fusione è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.

Il problema di nil

La lettura di una chiave mancante restituisce nil, che può causare risultati imprevisti nei calcoli o nella logica. Ruby offre metodi più sicuri per gestire l'assenza di valori.

h = { a: 1 }
puts h[:b].inspect

fetch per un accesso sicuro

fetch restituisce il valore oppure genera un errore chiaro se la chiave manca. Lo usi quando una chiave è obbligatoria.

h = { name: "Ada" }
puts h.fetch(:name)

fetch con un valore predefinito

Passi a fetch un secondo argomento come valore alternativo, usato solo quando manca la chiave.

h = { name: "Ada" }
puts h.fetch(:age, 0)
puts h.fetch(:name, "Unknown")

fetch con un blocco

Passi un blocco per calcolare il valore alternativo solo quando serve. Il blocco viene eseguito soltanto in caso di mancata corrispondenza.

h = {}
puts h.fetch(:x) { "computed default" }

Hash con un valore predefinito

Hash.new(default) restituisce il valore predefinito per qualsiasi chiave mancante invece di nil. Il valore predefinito è condiviso, quindi è preferibile usarlo con valori semplici e immutabili.

counts = Hash.new(0)
counts[:a] += 1
counts[:a] += 1
puts counts[:a]
puts counts[:b]

Valore predefinito con un blocco

Hash.new { |hash, key| ... } calcola un nuovo valore predefinito per ogni chiave, una soluzione ideale per raggruppare gli elementi in array.

groups = Hash.new { |h, k| h[k] = [] }
groups[:fruit] << "apple"
groups[:fruit] << "pear"
puts groups[:fruit].inspect

Conteggio con valori predefiniti

Un valore predefinito pari a 0 rende il conteggio delle parole semplice e ordinato.

words = ["a", "b", "a", "a"]
count = Hash.new(0)
words.each { |w| count[w] += 1 }
puts count

Unione di hash

merge combina due hash in un nuovo hash. In caso di conflitto, prevalgono le chiavi del secondo hash.

defaults = { color: "red", size: "M" }
user = { color: "blue" }
puts defaults.merge(user)

Unione con un blocco

Passi un blocco a merge per risolvere i conflitti, ad esempio sommando i valori.

a = { x: 1, y: 2 }
b = { y: 3, z: 4 }
puts a.merge(b) { |key, old, new| old + new }

Accesso sicuro agli hash annidati con dig

dig legge i dati attraverso hash annidati in modo sicuro e restituisce nil se manca un livello, invece di generare un errore.

data = { user: { address: { city: "London" } } }
puts data.dig(:user, :address, :city)
puts data.dig(:user, :phone, :home).inspect

Combinazione degli strumenti

Usi insieme i valori predefiniti e merge per creare una configurazione partendo da valori di base e relative sostituzioni.

base = { retries: 3, timeout: 30 }
options = base.merge(timeout: 60)
puts options.fetch(:timeout)

Controllo rapido

Verifichi le Sue conoscenze sui valori predefiniti e sull'unione.

Riepilogo

Ora sa gestire con eleganza i dati mancanti:

  • fetch con valore predefinito, blocco o errore obbligatorio
  • Hash.new(0) e valori predefiniti con blocco per contare e raggruppare
  • merge con blocchi per i conflitti
  • dig per accedere in sicurezza a strutture annidate

Prossimo corso: intervalli ed Enumerable.

c = Hash.new(0)
c[:hits] += 1
puts c[:hits]

Domande Frequenti

La lezione «Valori predefiniti e fusione» è gratuita?

Sì — il testo completo di «Valori predefiniti e fusione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.

Cosa imparerò in «Valori predefiniti e fusione»?

fetch, merge, dig Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ruby Academy?

Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Valori predefiniti e fusione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ruby Academy?

Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Simboli e stringhe
  2. Creare e leggere hash
  3. Iterazione sugli hash
  4. Valori predefiniti e fusione
← Torna a Ruby Academy