Descripción general del proyecto
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 33 de 56.
Vas a construir un pequeño seguidor de hábitos. El estado reside en un único diccionario que mapea el nombre de un hábito con su historial de días completados de la semana:
var habits: [String: [Int]] = [
"read": [1, 3, 5], // completado el lun, mié, vie
"workout": [2, 4] // completado el mar, jue
]Los días son números enteros 1...7 para Lun...Dom. A lo largo de las próximas cuatro lecciones, añadirás funciones una a una:
- Añadir un hábito y marcarlo como completado
- Calcular rachas a lo largo de la semana
- Imprimir una cuadrícula semanal
- Comparar dos semanas
Cada lección es independiente, volverás a declarar el diccionario al principio de cada archivo. El estado tiene la misma forma, por lo que los métodos que escribas se transfieren entre lecciones.
Desafío
PrincipiantePara poner en marcha el proyecto, escribe el código de configuración de datos:
- Inicializa un diccionario
habitsvacío ([String: [Int]]) - Imprime el recuento de hábitos
- Imprime si el diccionario está vacío
La salida esperada es:
0
trueHoja de referencia
Un rastreador de hábitos puede modelarse como un diccionario que mapea nombres de hábitos a arreglos de números de días completados (1...7 para lun–dom):
var habits: [String: [Int]] = [
"read": [1, 3, 5], // hecho el lun, mié, vie
"workout": [2, 4] // hecho el mar, jue
]Propiedades útiles de los diccionarios:
habits.count // número de entradas
habits.isEmpty // verdadero si no hay entradasPruébalo tú mismo
// TODO: declara un [String: [Int]] vacío, luego imprime count y isEmpty
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras