go书籍管理系统用Book结构体和切片实现CRUD:添加时ID自增并校验标题;查询支持全部返回或按ID遍历查找;更新仅覆盖非空字段;删除用切片截断,全程需校验ID有效性。

在 Go 语言中构建一个轻量级书籍管理系统,核心是用结构体建模、切片或 map 存储数据、函数封装 CRUD 逻辑,无需数据库即可快速验证业务流程。下面以内存存储为例,清晰实现增删改查功能。
定义书籍结构体与存储容器
先设计数据模型,用 Book 结构体表示单本书,包含 ID(自增)、标题、作者、ISBN 等常用字段;用全局切片 books 模拟存储,便于演示和调试:
注意:实际项目建议用 map[int]*Book 提升查找效率,ID 作 key;此处用切片更直观体现“列表管理”逻辑。
实现添加书籍(Create)
添加时生成唯一 ID(取当前切片长度 +1),校验必填字段(如 Title 不为空),追加到切片末尾:
立即学习“go语言免费学习笔记(深入)”;
实现查询书籍(Read)
支持两种查法:查全部、按 ID 查单本。按 ID 查时遍历切片,匹配后立即返回;未找到返回 nil 和错误提示:
- GetAll() 直接返回 books 切片副本(避免外部修改原数据)
- GetByID(id int) 遍历比较,推荐用 for range + index,简洁安全
- 返回指针 *Book 更灵活(便于后续更新)
实现更新与删除(Update & delete)
更新需先通过 ID 找到原记录,再赋值新字段(跳过空字段可选);删除则用切片截断技巧,保持顺序不变: