例如结构体为:
type system struct {
Mode string `validate:"eq=master|eq=slave"`
Listen string `validate:"required"`
Debug bool
SessionSecret string
HashIDSalt string
GracePeriod int `validate:"gte=0"`
ProxyHeader string `validate:"required_with=Listen"`
}
初始化结构体struct的方式有以下几种
返回变量指针
var SystemConfig = &system{
Debug: false,
Mode: "master",
Listen: ":5212",
ProxyHeader: "X-Forwarded-For",
}
或者 var SystemConfig = &system{}
返回变量指针
SystemConfig := new(system)
SystemConfig.Mode = "master"
SystemConfig.Listen = ":5212"
// ...
}
字面量初始化
# 创建一个结构体实例并初始化字段,但不返回指针
config := system{Mode: "master", Listen: ":5212"}