0Pricing
Swift Academy · Lezione

Subscript predefiniti dei dizionari

Leggi i valori dei dizionari usando i valori predefiniti integrati.

Subscript predefiniti dei dizionari è una lezione Swift 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 Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Le ricerche nei dizionari sono optional

La ricerca di una chiave con dict[key] restituisce un optional, perché la chiave potrebbe non esistere. È necessario gestire questo optional.

let ages = ["Ann": 30]
let bob = ages["Bob"]
print(bob as Any)

Il subscript con valore predefinito

Swift offre un subscript con un valore predefinito: dict[key, default: value]. Se la chiave non esiste, si ottiene il valore predefinito invece di nil.

let ages = ["Ann": 30]
print(ages["Bob", default: 0])
print(ages["Ann", default: 0])

Il risultato non è un optional

A differenza di una ricerca normale, il subscript con valore predefinito restituisce un valore non optional, quindi può essere usato immediatamente senza estrarlo.

let stock = ["pen": 5]
let pens: Int = stock["pen", default: 0]
print(pens + 1)

Contare con i valori predefiniti

Il subscript con valore predefinito è ideale per contare le occorrenze. Inizi ogni chiave da 0 e incrementi man mano.

var counts: [String: Int] = [:]
let words = ["a", "b", "a", "a", "b"]
for word in words {
    counts[word, default: 0] += 1
}
print(counts["a", default: 0])
print(counts["b", default: 0])

Perché funziona +=

Poiché dict[key, default: 0] restituisce un valore reale anche per una chiave nuova, può modificarlo direttamente con += in modo sicuro.

var tally: [String: Int] = [:]
tally["x", default: 0] += 5
tally["x", default: 0] += 3
print(tally["x", default: 0])

Sommare per gruppi

Può accumulare le somme per categoria in un'unica passata usando il subscript con valore predefinito.

let sales = [("apple", 3), ("pear", 2), ("apple", 4)]
var totals: [String: Int] = [:]
for (item, amount) in sales {
    totals[item, default: 0] += amount
}
print(totals["apple", default: 0])

Valore predefinito rispetto alla coalescenza di nil

dict[key, default: 0] equivale a dict[key] ?? 0 per la lettura, ma la forma con subscript supporta anche la modifica diretta.

let prices = ["tea": 3]
print(prices["tea"] ?? 0)
print(prices["tea", default: 0])

Aggiungere elementi ai valori array

Il subscript con valore predefinito funziona anche con valori array e consente di creare liste raggruppate.

var groups: [String: [Int]] = [:]
groups["even", default: []].append(2)
groups["even", default: []].append(4)
print(groups["even", default: []])

I valori predefiniti non inseriscono elementi

La lettura con un valore predefinito non aggiunge la chiave al dizionario. La chiave viene memorizzata solo quando si modifica il valore, ad esempio con +=.

var data: [String: Int] = [:]
_ = data["ghost", default: 0]
print(data.count)
data["real", default: 0] += 1
print(data.count)

Scegliere un valore predefinito appropriato

Scelga un valore predefinito coerente con il tipo del valore e con l'operazione: 0 per le somme, [] per le liste e una stringa vuota per il testo.

var notes: [String: String] = [:]
notes["greeting", default: ""] += "Hello"
notes["greeting", default: ""] += " World"
print(notes["greeting", default: ""])

Combinare conteggi e letture

Crei una mappa delle frequenze, poi la legga usando lo stesso valore predefinito per mantenere un risultato non optional in ogni fase.

var freq: [Character: Int] = [:]
for ch in "banana" {
    freq[ch, default: 0] += 1
}
print(freq["a", default: 0])
print(freq["z", default: 0])

Verifica rapida

Provi il subscript con valore predefinito.

Riepilogo: subscript predefiniti dei dizionari

Usi dict[key, default: value] per leggere un valore di riserva non optional e per modificare direttamente i valori. È ideale per contare, sommare e raggruppare senza controlli manuali su nil.

var c: [String: Int] = [:]
for x in ["a", "a", "b"] { c[x, default: 0] += 1 }
print(c["a", default: 0])

Domande Frequenti

La lezione «Subscript predefiniti dei dizionari» è gratuita?

Sì — il testo completo di «Subscript predefiniti dei dizionari» è 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 Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Subscript predefiniti dei dizionari»?

Leggi i valori dei dizionari usando i valori predefiniti integrati. Eserciti Swift 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 Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift 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 «Subscript predefiniti dei dizionari»?

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 Swift Academy?

Sì. Ogni lezione Swift 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. Operatore nil-coalescing
  2. concatenamento dei valori predefiniti
  3. Valori predefiniti nei parametri delle funzioni
  4. Subscript predefiniti dei dizionari
← Torna a Swift Academy