1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| package models
type User struct {
ID int
FirstName string
LastName string
}
// 全局变量是指在所有函数之外声明的变量,它们的作用域是整个程序。
var (
// users 切片是一个全局变量。
// 存储了所有用户的指针。每个指针都指向一个 User 结构体
users []*User
//users 和 nextID 是在 models/user.go 文件的顶部声明的,因此它们是全局变量。
nextID = 1
)
func GetUsers() []*User {
return users
}
//AddUser 函数是向 users 全局变量中添加新用户的函数,其参数为 User 结构体,返回一个 User 结构体和一个 error 类型的值。
func AddUser(u User) (User, error) {
u.ID = nextID
nextID++
//使用 append 函数将一个新的指向 User 结构体的指针添加到 users 中。
//这样做可以避免复制 User 结构体的开销,并且可以保证在函数外部修改 users 切片的效果。
users = append(users, &u)
// 返回一个新的 User 结构体和 nil 值的 error,表示添加用户操作没有出现任何错误。
return u, nil
}
|