用golang切片写一个简单的图书管理
时间: 2023-10-16 21:09:19 浏览: 53
简单的图书管理
下面是一个简单的图书管理的示例代码:
```go
package main
import (
"fmt"
)
type Book struct {
id int
title string
author string
}
func main() {
var bookList []Book
// 添加图书
bookList = append(bookList, Book{id: 1, title: "The Great Gatsby", author: "F. Scott Fitzgerald"})
bookList = append(bookList, Book{id: 2, title: "To Kill a Mockingbird", author: "Harper Lee"})
bookList = append(bookList, Book{id: 3, title: "1984", author: "George Orwell"})
// 打印图书列表
fmt.Println("图书列表:")
for _, book := range bookList {
fmt.Printf("ID:%d, 标题:%s, 作者:%s\n", book.id, book.title, book.author)
}
// 根据 ID 查找图书
id := 2
for _, book := range bookList {
if book.id == id {
fmt.Printf("查找到 ID 为 %d 的图书,标题为 %s,作者为 %s\n", book.id, book.title, book.author)
break
}
}
// 根据 ID 删除图书
id = 3
for i, book := range bookList {
if book.id == id {
bookList = append(bookList[:i], bookList[i+1:]...)
fmt.Printf("已删除 ID 为 %d 的图书\n", id)
break
}
}
// 打印删除后的图书列表
fmt.Println("删除后的图书列表:")
for _, book := range bookList {
fmt.Printf("ID:%d, 标题:%s, 作者:%s\n", book.id, book.title, book.author)
}
}
```
上述代码中,我们定义了一个 `Book` 结构体来表示图书,包含了图书的 ID、标题和作者。我们使用切片来存储图书列表 `bookList`,并提供了以下几个方法:
1. 添加图书:使用 `append` 函数向 `bookList` 切片中添加 `Book` 结构体;
2. 打印图书列表:使用 `for` 循环遍历 `bookList` 切片,并打印每个图书的 ID、标题和作者;
3. 根据 ID 查找图书:使用 `for` 循环遍历 `bookList` 切片,查找 ID 为指定值的图书;
4. 根据 ID 删除图书:使用 `for` 循环遍历 `bookList` 切片,找到 ID 为指定值的图书,并使用切片的方式从 `bookList` 中删除该图书。
运行上述代码,输出结果如下:
```
图书列表:
ID:1, 标题:The Great Gatsby, 作者:F. Scott Fitzgerald
ID:2, 标题:To Kill a Mockingbird, 作者:Harper Lee
ID:3, 标题:1984, 作者:George Orwell
查找到 ID 为 2 的图书,标题为 To Kill a Mockingbird,作者为 Harper Lee
已删除 ID 为 3 的图书
删除后的图书列表:
ID:1, 标题:The Great Gatsby, 作者:F. Scott Fitzgerald
ID:2, 标题:To Kill a Mockingbird, 作者:Harper Lee
```
阅读全文