golang tag的应用场景
时间: 2023-06-28 07:07:01 浏览: 60
golang的tag可以用于结构体的字段中,用于在运行时获取结构体的元数据。常见的应用场景包括:
1. ORM框架中,将结构体的字段映射到数据库表中的列名;
2. JSON序列化和反序列化时,将结构体的字段映射到JSON中的key;
3. 表单验证和参数绑定时,将结构体的字段映射到HTTP请求参数中的key;
4. 自定义标记,例如设置字段的默认值、长度限制等。
Golang的tag格式为:`key:"value" key:"value" ...`,其中key是一个字符串,表示tag的名称,value是一个字符串或者一个用双引号括起来的字符串切片,表示tag的值。例如:
```go
type User struct {
ID int `json:"id" gorm:"primary_key"`
Name string `json:"name" gorm:"not null"`
Email string `json:"email" gorm:"unique_index"`
Password string `json:"-"`
CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"`
UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"`
}
```
在这个例子中,User结构体的字段都有使用tag,其中json表示在JSON序列化和反序列化时使用的key,gorm表示在ORM框架gorm中使用的标记。