Arrays 如何将Go validator.FieldLevel.Field()转换为字符串数组

Arrays 如何将Go validator.FieldLevel.Field()转换为字符串数组,arrays,validation,go,go-playground,Arrays,Validation,Go,Go Playground,我有一个具有这种结构的复杂对象 类型人员结构{ 目标[]字符串`validate:“必需,ValidateCustom”json:“目标”` } 我需要使用gopkg.in/go playway/validator.v9,在枚举中测试列表思维: //ValidateCustom——ValidateCustom func ValidateCustom(字段验证程序.FieldLevel)bool{ 开关strings.ToUpper(field.field().String()){ “emumA

我有一个具有这种结构的复杂对象

类型人员结构{
目标[]字符串`validate:“必需,ValidateCustom”json:“目标”`
}
我需要使用
gopkg.in/go playway/validator.v9
,在枚举中测试列表思维:

//ValidateCustom——ValidateCustom
func ValidateCustom(字段验证程序.FieldLevel)bool{
开关strings.ToUpper(field.field().String()){
“emumA”案:
案例“enumB”:
返回真值
违约:
返回错误
}
}

本例使用了字符串的概念,但如何构建[]字符串进行迭代?

我找到了答案。。。使用切片和接口

//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
     }
}

什么是
验证器
?它是针对实体的gopkg验证器。。。gopkg.in/go-playder/validator.v9