Как я могу преобразовать Go validator.FieldLevel.Field() в массив строк
У меня сложный объект с такой структурой.
type People struct {
Objectives []string `validate:"required,ValidateCustom" json:"Objectives"`
}
И мне нужно протестировать мышление списка в перечислении, используя gopkg.in/go-playground/validator.v9
:
//ValidateCustom -- ValidateCustom
func ValidateCustom(field validator.FieldLevel) bool {
switch strings.ToUpper(field.Field().String()) {
case "emumA":
case "enumB":
return true
default:
return false
}
}
В этом примере используется идея строки, но как я могу построить строку до [] для итерации?
1 ответ
Я нашел ответ... используя слайс и интерфейс
//ValidateCustom -- ValidateCustom
func ValidateCustom(field validator.FieldLevel) bool {
inter := field.Field()
slice, ok := inter.Interface().([]string)
if !ok {
return false
}
for _, v := range slice {
switch strings.ToUpper(v) {
case "enumA":
case "enumB":
return true
default:
return false
}
}