# 待办事项列表项目 这是一个命令行待办事项管理程序,演示了 Go 语言在数据持久化、文件操作和用户交互方面的应用。 ## 项目特性 - 添加、删除、修改待办事项 - 标记任务完成状态 - 按优先级和状态筛选任务 - 数据持久化到 JSON 文件 - 彩色命令行界面 - 任务搜索功能 - 统计信息显示 ## 项目结构 ``` 02-todo-list/ ├── README.md # 项目说明文档 ├── main.go # 主程序入口 ├── todo/ # 待办事项核心包 │ ├── todo.go # 待办事项数据结构 │ ├── manager.go # 任务管理器 │ └── storage.go # 数据存储 ├── ui/ # 用户界面包 │ ├── cli.go # 命令行界面 │ └── colors.go # 颜色输出 ├── data/ # 数据文件目录 │ └── todos.json # 任务数据文件 └── todo_test.go # 测试文件 ``` ## 运行方法 ```bash # 进入项目目录 cd 10-projects/02-todo-list # 运行程序 go run main.go # 或者编译后运行 go build -o todo main.go ./todo ``` ## 使用示例 ``` === 待办事项管理器 === 命令列表: add <任务> - 添加新任务 list - 显示所有任务 done - 标记任务完成 delete - 删除任务 edit <新内容> - 编辑任务 search <关键词> - 搜索任务 stats - 显示统计信息 help - 显示帮助 quit - 退出程序 > add 学习Go语言 ✅ 任务已添加: 学习Go语言 (ID: 1) > add 完成项目文档 ✅ 任务已添加: 完成项目文档 (ID: 2) > list 📋 待办事项列表: [1] ⏳ 学习Go语言 (优先级: 中) [2] ⏳ 完成项目文档 (优先级: 中) > done 1 ✅ 任务已完成: 学习Go语言 > list 📋 待办事项列表: [1] ✅ 学习Go语言 (优先级: 中) [2] ⏳ 完成项目文档 (优先级: 中) > stats 📊 统计信息: 总任务数: 2 已完成: 1 待完成: 1 完成率: 50.0% ``` ## 学习要点 这个项目综合运用了以下 Go 语言特性: 1. **结构体和方法**: 定义任务和管理器结构体 2. **接口设计**: 定义存储和界面接口 3. **JSON 处理**: 数据序列化和反序列化 4. **文件操作**: 读写 JSON 文件进行数据持久化 5. **错误处理**: 完善的错误处理机制 6. **字符串处理**: 命令解析和文本处理 7. **切片操作**: 任务列表的增删改查 8. **时间处理**: 任务创建和修改时间 9. **包管理**: 多包项目结构 10. **用户交互**: 命令行输入输出 11. **测试**: 单元测试和集成测试 ## 扩展建议 1. 添加任务分类和标签功能 2. 支持任务截止日期和提醒 3. 实现任务导入导出功能 4. 添加任务优先级排序 5. 支持批量操作 6. 实现 Web 界面 7. 添加任务统计图表 8. 支持多用户管理 9. 集成云端同步 10. 添加任务模板功能