Descripción general del proyecto
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 49 de 56.
El segundo proyecto es un motor de cuestionarios. El estado es una lista de preguntas, cada una una tupla de (category, text, answer):
var questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "paris")
]A lo largo de las próximas cuatro lecciones, añadirás funciones una a una:
- Añadir preguntas y hacerlas en orden
- Puntuar respuestas (sin distinguir mayúsculas, recortadas)
- Filtrar por categoría
- Resumir la ejecución con un desglose por categoría
Al igual que el Habit Tracker, cada lección es independiente; volverás a construir el banco de preguntas en la parte superior de cada archivo.
Desafío
PrincipiantePara empezar, escribe el código de configuración de datos:
- Inicializa un array vacío de preguntas (
[(String, String, String)]) - Imprime el conteo (count)
- Imprime si el array está vacío (isEmpty)
La salida esperada es:
0
trueHoja de referencia
Un motor de cuestionarios almacena preguntas como una lista de tuplas con (category, text, answer):
var questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "paris")
]Propiedades útiles de los arrays:
questions.count // número de elementos
questions.isEmpty // verdadero si no hay elementosPruébalo tú mismo
// TODO: declara un [(String, String, String)] vacío llamado questions,
// luego imprime count e 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