





支持 定义Task结构体,包含Description(任务内容),CreatedAt(创建时间),IsDone(是否完成) 后面的json字段是为了添加映射,这里需要补充json序列化和反序列化的知识, 在 Go 语言中,进行 JSON 操作时,结构体的字段名需要满足 JSON 的规范,这涉及到 结构体标签(Struct Tags)。 这部分涉及很多io操作的函数,以及错误处理的方式和序列化的知识,知识点总结如下功能需求
add(添加任务)、list(列出任务)、done(标记完成)。设计思路
数据模型
具体流程
1.首先定义结构体
type Task struct {
Description string `json:"description"` // 任务描述
CreatedAt string `json:"createdAt"` // 创建时间
IsDone bool `json:"isDone"` // 是否完成
}
Desription)。但在 JSON 文件中,通用惯例是使用 小写或蛇形命名(如 description)。json:"fieldName" 标签来指导 encoding/json 包进行正确的映射。2.处理命令行参数以及命令行分发代码
os.Args[0]:永远是程序的名称(例如:./todo)os.Args[1]:是第一个参数,即命令(例如:add)os.Args[2:]:是命令后面的所有参数func main() {
//检查参数长度
if len(os.Args) < 2 {
fmt.Println("用法: todo <命令> [参数]")
fmt.Println("命令: add, list, done")
return
}
command := os.Args[1]
// 使用 switch 结构来分发命令
switch command {
case "add":
// ... 添加任务逻辑
case "list":
// ... 列出任务逻辑
case "done":
// ... 标记完成逻辑
default:
fmt.Printf("未知命令: %s\n", command)
}
}
3.实现核心函数loadTasks()和saveTasks()
