Обзор проекта
Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 33 из 56.
Вы собираетесь создать небольшой трекер привычек. Состояние хранится в одном словаре, который сопоставляет название привычки с историей выполненных дней за неделю:
var habits: [String: [Int]] = [
"read": [1, 3, 5], // выполнено в Пн, Ср, Пт
"workout": [2, 4] // выполнено во Вт, Чт
]Дни — это целые числа 1...7 для Пн...Вс. В течение следующих четырех уроков вы будете добавлять функции по одной:
- Добавить привычку и отметить её как выполненную
- Вычислить серии за неделю
- Вывести недельную сетку
- Сравнить две недели
Каждый урок автономен, вы будете заново объявлять словарь в начале каждого файла. Состояние имеет ту же структуру, поэтому написанные вами методы переносятся между уроками.
Задание
НовичокЧтобы начать проект, напишите код настройки данных:
- Инициализируйте пустой словарь
habits([String: [Int]]) - Выведите количество привычек
- Выведите, является ли словарь пустым
Ожидаемый результат:
0
trueШпаргалка
Трекер привычек можно представить в виде словаря, сопоставляющего названия привычек с массивами номеров выполненных дней (1...7 для Пн–Вс):
var habits: [String: [Int]] = [
"read": [1, 3, 5], // выполнено в Пн, Ср, Пт
"workout": [2, 4] // выполнено во Вт, Чт
]Полезные свойства словаря:
habits.count // количество записей
habits.isEmpty // true, если записей нетПопробуйте сами
// TODO: объявите пустой [String: [Int]], затем выведите count и isEmpty
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаря