Configuración del proyecto
Parte de la sección Lógica y Flujo del Journey de GO de Coddy — lección 20 de 68.
Desafío
FácilA lo largo de las próximas lecciones, construirás una aplicación sencilla de lista de tareas por línea de comandos que permite a los usuarios añadir, ver, completar y eliminar tareas.
En este desafío, crearás la base para un sistema de gestión de tareas configurando la estructura de datos básica y la interfaz de usuario. Este es el primer paso para construir una aplicación de lista de tareas completa que crecerá a lo largo del proyecto.
Recibirás dos entradas:
- Una cadena que representa el nombre de la aplicación (por ejemplo,
"MyTasks") - Una cadena que representa el nombre del usuario (por ejemplo,
"Alice")
Tu tarea es:
- Definir una estructura
Taskcon dos campos:Name(string) - la descripción de la tareaCompleted(bool) - si la tarea está terminada
- Crear un slice de estructuras
Taskpara contener tu lista de tareas (inicialmente vacío) - Mostrar un mensaje de bienvenida en el formato:
"Welcome to [app_name], [user_name]!" - Mostrar un menú con las siguientes opciones, cada una en una línea separada:
"1. Add Task""2. View Tasks""3. Complete Task""4. Remove Task""5. Exit"
- Imprimir el número actual de tareas en el formato:
"Current tasks: [count]"
Este desafío establece la estructura central que soportará toda la funcionalidad futura en tu sistema de gestión de tareas. La estructura Task será el bloque de construcción para almacenar tareas individuales, mientras que el slice gestionará tu colección de tareas. El menú proporciona una interfaz clara para que los usuarios entiendan qué acciones pueden realizar.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Leer entrada
var appName string
var userName string
fmt.Scanln(&appName)
fmt.Scanln(&userName)
// TODO: Escribe tu código a continuación
// Definir la estructura Task
// Crear un slice de estructuras Task
// Mostrar mensaje de bienvenida y menú
// Imprimir el recuento de tareas actuales
}Todas las lecciones de Lógica y Flujo
1Flujo de control avanzado
Switch con `fallthrough`Salir de bucles anidadosContinuar un bucle específicoLa sentencia `goto`Repaso: Control de bucles avanzado4Proyecto: Lista de tareas sencilla
Configuración del proyectoAñadir una tarea2Estructuras y Métodos
Definición de métodos en estructurasReceptores de valorReceptores de punteroElegir receptoresMétodos vs FuncionesResumen - Comportamiento de estructuras5Mapas en profundidad
Mapas de StructsPunteros como valores de MapVerificación de Maps NilComparación de MapsResumen - Contador de frecuencia de palabras3Interfaces (Conceptos básicos)
¿Qué es una interfaz?Definir una interfazImplementar una interfazUso de tipos de interfazInterfaz vacíaAserciones de tipoType SwitchResumen: Formas y comportamientos