go - 检查所有字段是否在结构初始化中显式设置的 Linter
问题描述
我想为我的 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
}
推荐阅读
- angular - 如何构建项目以便只有 index.html 位于根目录?
- python - numpy 随机选择和 networkx 图表列表
- django-rest-framework - 如何删除 ViewSet 中的任何文件
- php - 使用 PHP 变量在 MySQLi 中的 Carousel 中显示图像
- android - WebView 没有在 Android 中加载本地 HTML?
- java - 通过同步两个本地存储的数据库
- excel - 将特定文本从 Word 文档复制到 Excel
- ruby-on-rails - 为什么我只获得最后一个与包含关联的记录?
- python - 如何检测何时调用了“--help”?
- visual-studio-code - 如何本地化 VSCode 扩展