Creare insiemi
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 18 di 56.
Un Set è una raccolta non ordinata di valori univoci. Ogni elemento deve essere dello stesso tipo, non sono ammessi duplicati e l’ordine di iterazione non è prevedibile.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (il duplicato "red" viene eliminato)L'annotazione del tipo Set<String> è obbligatoria nella forma letterale perché ["a", "b"] da sola verrebbe dedotta come un Array.
Tre operazioni fondamentali: contains, insert e remove. Le ultime due restituiscono informazioni sul fatto che la modifica abbia avuto effetto.
colors.insert("yellow") // lo aggiunge
colors.insert("red") // già presente, nessun effetto
colors.contains("green") // true
colors.remove("blue") // restituisce "blue" o nil se non è presenteCreare un set da un array rimuove i duplicati in un solo passaggio:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elementi, ordine esatto non garantitoSfida
PrincipianteLeggi una singola riga di input: un elenco di parole separate da virgole (possibilmente con duplicati).
Stampa tre righe:
- Il numero di parole uniche (usa
Set) - Le parole uniche ordinate alfabeticamente, unite con
, truequando l'input contiene la parolaswift, altrimentifalse(usacontains)
Per l'input swift,ruby,go,swift,go,rust, l'output è:
4
go,ruby,rust,swift
trueProvalo tu
let words = readLine()!.components(separatedBy: ",")
// TODO: elimina i duplicati tramite Set, stampa il conteggio, gli elementi ordinati e uniti, e verifica se contiene il testo esatto delle istruzioni
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 paroleEsercitati da solo: Playground Swift