Dichiarare i dizionari
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 12 di 56.
Un dizionario è una raccolta non ordinata di coppie chiave/valore. Sia il tipo della chiave sia quello del valore sono definiti quando lo crei.
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // falseL'annotazione di tipo [String: Int] si legge «le chiavi sono String, i valori sono Int». Swift di solito riesce a dedurla dal letterale, ma scriverla esplicitamente rende non ambigui gli inizializzatori vuoti:
var counts: [String: Int] = [:]
// rispetto a un array vuoto, che avrebbe bisogno anch'esso di un tipoLa lettura di una chiave esistente restituisce il valore. La lettura di una chiave inesistente restituisce nil; la prossima lezione approfondisce questo aspetto.
Sfida
FacileLeggi tre righe di input: un nome, un paese e un'età intera. Crea un unico dizionario chiamato person con chiavi String e i valori che hai letto (l'età resta un Int; ti servirà un tipo di valore eterogeneo, vedi il suggerimento).
Stampa tre righe:
- Il numero di voci nel dizionario
name=<value>usando l'accesso tramite pedicecountry=<value>usando l'accesso tramite pedice
Usa la forma stampabile: quando leggi il valore del dizionario come Any, esegui l'unwrapping forzato prima di stamparlo.
Con l'input Alice / UK / 30, l'output è:
3
name=Alice
country=UKProvalo tu
let name = readLine()!
let country = readLine()!
let age = Int(readLine()!)!
// TODO: crea un [String: Any] llamado person, imprime count, name y country
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle parole3Dizionari
Dichiarare i dizionariRicerca facoltativaAggiornare i dizionariIterare sui dizionariRaggruppare i valoriRipasso - Inventario6Funzioni di ordine superiore Parte 2
compactMapflatMapsorted(by:)Creare pipelineRiepilogo - ClassificaEsercitati da solo: Playground Swift