Как проверить длину поля структуры с помощью правил Min () или Max () в go-ozzo / ozzo-validation

#validation #go

#проверка #Вперед

Вопрос:

Я думаю передать пороговое значение функции Min () и ожидать, что эта функция проверит Name длину. Однако это не работает.

Ниже приведен мой код:

 type Person struct {
    Name string
}

func (c Person) Validate() error {
    return validation.ValidateStruct(amp;c,
        validation.Field(amp;c.Name, validation.Min(5)),
    )
}

func main() {
    person := Person{
        Name: "Udin",
    }

    if err := person.Validate(); err != nil {
        fmt.Println(err)
    }
}
 

После того, как я увижу в документации тест правил проверки Min (), правильный способ его использования:

 err := validation.Min(5).Validate(len(person.Name))
 

Итак, вопрос в том, как использовать эти Min() правила в validation.ValidateStruct() ?
Возможно ли это?

Комментарии:

1. Вы должны использовать validation.Length(5, 0) вместо validation.Min(5) , согласно readme репозитория библиотеки. 0 здесь означает отсутствие проверки для максимально допустимой длины.