Golang是一种快速、安全、高效的编程语言,被广泛用于构建高性能、分布式系统。在Golang中,组件化编程是一个非常重要的概念。组件化编程可以使代码更加清晰简洁,易于维护和扩展。
在本文中,我们将讨论Golang工程组件篇中的字段验证器val idator之自定义字段、结构体补充及自定义验证。
一、自定义字段
在val idator中,我们可以使用现有的标准类型进行验证,也可以通过自定义类型来实现更加灵活的验证。下面是一个简单的示例:
package main
import (
"github.com/go-playground/validator/v10"
)
type Age int
func (a Age) Validate(fl validator.FieldLevel) bool {
return a > 0 && a < 100
}
type User struct {
Name string `validate:"required"`
Age Age `validate:"required,age"`
}
func main() {
user := &User{
Name: "John Doe",
Age: 120,
}
validate := validator.New()
validate.RegisterValidation("age", Age(0).Validate)
err := validate.Struct(user)
if err != nil {
for _, e := range err.(validator.ValidationErrors) {
fmt.Println(e.StructFiel