golang结构体的标签使用总结(持续更新)
// 定义一个结构体,并使用标签指定数据库表名和字段标签
type User struct {
ID uint `gorm:"primaryKey"` // 主键
Name string `gorm:"size:255"` // 字符串字段,最大长度255
Email string `gorm:"type:varchar(100);uniqueIndex"` // 字符串字段,类型为varchar,长度100,并加唯一索引
Password string `gorm:"-"` // 忽略该字段
CreatedAt time.Time
UpdatedAt time.Time
}
// 使用标签指定字段为JSON字段,并在序列化/反序列化时忽略该字段
type APIResponse struct {
Code int `json:"code"`
Message string `json:"message,omitempty"` // 如果字段为空,则在JSON中省略该字段
}
// 使用标签指定字段为Elasticsearch字段
type Product struct {
ID int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Price int `json:"price"`
Tags []string `json:"tags" gorm:"type:varchar(255) array"` // 字符串数组字段,用于PostgreSQL数组类型
}
这个代码示例展示了如何在Go语言中使用结构体标签。它首先定义了一个User
结构体,用于表示用户信息,并展示了如何使用gorm标签来定义数据库的表名和字段属性。接着,它定义了一个APIResponse
结构体,用于表示API响应,并展示了如何使用json
标签来定义JSON字段的序列化和反序列化行为。最后,它定义了一个Product
结构体,用于表示产品信息,并展示了如何使用gorm标签来定义数据库字段类型,特别是对于PostgreSQL数组类型的支持。
评论已关闭