Création d'ensembles
Fait partie de la section Logique et Flux du Journey Swift de Coddy. Leçon 18 sur 56.
Un Set est une collection non ordonnée d'éléments uniques. Le même type d'élément pour chaque membre, aucun doublon autorisé, aucun ordre d'itération prévisible.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (le doublon "red" est supprimé)L'annotation de type Set<String> est obligatoire sous la forme littérale car ["a", "b"] seul serait inféré comme un Array.
Trois opérations de base : contains, insert et remove. Les deux dernières renvoient des informations pour savoir si le changement était significatif.
colors.insert("yellow") // l'ajoute
colors.insert("red") // déjà présent, aucun effet
colors.contains("green") // true
colors.remove("blue") // retourne "blue" ou nil si manquantCréer un ensemble à partir d'un tableau élimine les doublons en une seule étape :
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 éléments, l'ordre exact n'est pas garantiDéfi
DébutantLisez une seule ligne d'entrée : une liste de mots séparés par des virgules (avec éventuellement des doublons).
Affichez trois lignes :
- Le nombre de mots uniques (utilisez
Set) - Les mots uniques triés par ordre alphabétique, joints avec
, truelorsque l'entrée contient le motswift, sinonfalse(utilisezcontains)
Pour l'entrée swift,ruby,go,swift,go,rust, la sortie est :
4
go,ruby,rust,swift
trueEssayez vous-même
let words = readLine()!.components(separatedBy: ",")
// TODO: dédupliquer via Set, afficher le count, trié et joint, contient le texte exact des instructions
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de motsEntraînez-vous par vous-même : Playground Swift