Aperçu du projet
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 33 sur 56.
Vous allez construire un petit suivi d'habitudes. L'état réside dans un dictionnaire unique associant le nom d'une habitude à l'historique des jours complétés pour la semaine :
var habits: [String: [Int]] = [
"read": [1, 3, 5], // fait le lun, mer, ven
"workout": [2, 4] // fait le mar, jeu
]Les jours sont des entiers 1...7 pour Lun...Dim. Au cours des quatre prochaines leçons, vous ajouterez des fonctionnalités une par une :
- Ajouter une habitude et la marquer comme terminée
- Calculer les séries sur la semaine
- Afficher une grille hebdomadaire
- Comparer deux semaines
Chaque leçon est indépendante, vous redéclarerez le dictionnaire en haut de chaque fichier. L'état a la même forme, ainsi les méthodes que vous écrivez sont transférables d'une leçon à l'autre.
Défi
DébutantPour lancer le projet, écrivez le code de configuration des données :
- Initialisez un dictionnaire
habitsvide ([String: [Int]]) - Affichez le nombre d'habitudes
- Affichez si le dictionnaire est vide
Le résultat attendu est :
0
trueAide-mémoire
Un suivi d'habitudes peut être modélisé comme un dictionnaire associant des noms d'habitudes à des tableaux de numéros de jours complétés (1...7 pour Lun–Dim) :
var habits: [String: [Int]] = [
"read": [1, 3, 5], // fait le lun, mer, ven
"workout": [2, 4] // fait le mar, jeu
]Propriétés utiles du dictionnaire :
habits.count // nombre d'entrées
habits.isEmpty // vrai s'il n'y a pas d'entréesEssayez vous-même
// TODO: déclarer un [String: [Int]] vide, puis afficher count et isEmpty
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 mots