L'éditeur PHP Xiaoxin vous présente aujourd'hui un puissant validateur Golang - des règles de vérification d'énumération personnalisées. À mesure que Golang devient de plus en plus populaire, de plus en plus de développeurs commencent à l'utiliser pour créer des applications efficaces et fiables. Le validateur est l'un des outils importants qui peuvent nous aider à vérifier si les données d'entrée sont conformes au format et aux exigences spécifiés. Les règles de validation d'énumération personnalisées sont une fonction importante du validateur, qui peut nous aider à définir nos propres types d'énumération et à valider les données d'entrée. À travers cet article, nous présenterons en détail comment utiliser les règles de validation d'énumération personnalisées dans Golang, ainsi que quelques scénarios d'application pratiques. Explorons ensemble cette fonctionnalité puissante !
J'utilise https://github.com/go-playground/validator et je dois créer des règles de validation personnalisées pour différentes valeurs d'énumération. Voici ma structure - https://go.dev/play/p/UmR6YH6cvK9. Comme vous pouvez le voir, j'ai 3 types d'utilisateurs différents : administrateurs, modérateurs et créateurs de contenu, et je souhaite ajuster différentes règles de mot de passe pour eux. Par exemple, le mot de passe d'un administrateur doit comporter au moins 7 caractères et le mot de passe d'un modérateur doit comporter au moins 5 caractères. Est-il possible de le faire via des balises dans go-playground/validator ?
Mon service obtient une liste d'utilisateurs et doit utiliser différentes règles pour la vérification
Vous pouvez vérifier les utilisateurs en demandant au package usertype
添加一个方法,该方法使用 validator
.
type usertype int const ( admin usertype = iota moderator contentcreator ) func (u usertype) validate() error { switch u { case admin: // validate admin case moderator: // validate moderator case contentcreator: // validate content creator default: return fmt.errorf("invalid user type") } return nil }
La validation d'appel ressemble à ceci
func main() { a := User{ Type: Admin, Name: "admin", Password: "pass", LastActivity: time.Time{}, } err := a.Type.Validate() if err != nil { fmt.Println("invalid user: %w", err) } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!