我想为我的go代码设置静态断言或linter,检查我没有 - 错误地 - 使用任何字段的默认值初始化配置文件中的结构。我希望明确地设置所有内容。
有没有办法实现这个目标?
编辑:澄清的问题。
查看验证器包。 https://gopkg.in/go-playground/validator.v9
我们在代码中广泛使用它来验证结构。例如
type Config struct {
Url string `validate:"required"`
MaxHops int `validate:"omitempty,min=0"`
MaxTerms int `validate:"omitempty,min=0"`
MaxCost float64 `validate:"omitempty,min=0"`
}
func Init(cfg *Config) error {
if err := validator.New().Struct(cfg); err != nil {
return errors.Wrap(err, "error in config")
}
//do something
}