Heim > Backend-Entwicklung > Golang > Benutzerdefinierte Aufzählungsvalidierungsregeln des Golang-Validators

Benutzerdefinierte Aufzählungsvalidierungsregeln des Golang-Validators

王林
Freigeben: 2024-02-09 08:06:33
nach vorne
679 Leute haben es durchsucht

Golang 验证器自定义枚举验证规则

Der PHP-Editor Xiaoxin stellt Ihnen heute einen leistungsstarken Golang-Validator vor – benutzerdefinierte Regeln zur Aufzählungsüberprüfung. Da Golang immer beliebter wird, beginnen immer mehr Entwickler damit, effiziente und zuverlässige Anwendungen zu erstellen. Der Validator ist eines der wichtigen Tools, mit dessen Hilfe wir überprüfen können, ob die Eingabedaten dem angegebenen Format und den angegebenen Anforderungen entsprechen. Benutzerdefinierte Aufzählungsvalidierungsregeln sind eine wichtige Funktion des Validators, die uns dabei helfen können, unsere eigenen Aufzählungstypen zu definieren und die Eingabedaten zu validieren. In diesem Artikel werden wir detailliert die Verwendung benutzerdefinierter Aufzählungsvalidierungsregeln in Golang sowie einige praktische Anwendungsszenarien vorstellen. Lassen Sie uns gemeinsam diese leistungsstarke Funktion erkunden!

Frageninhalt

Ich verwende https://github.com/go-playground/validator und muss benutzerdefinierte Validierungsregeln für verschiedene Aufzählungswerte erstellen. Hier ist meine Struktur – https://go.dev/play/p/UmR6YH6cvK9. Wie Sie sehen, habe ich drei verschiedene Benutzertypen: Administratoren, Moderatoren und Inhaltsersteller, und ich möchte für sie unterschiedliche Passwortregeln anpassen. Beispielsweise sollte das Passwort eines Administrators mindestens 7 Zeichen und das Passwort eines Moderators mindestens 5 Zeichen lang sein. Ist dies über Tags in go-playground/validator möglich?

Mein Dienst erhält eine Liste von Benutzern und muss unterschiedliche Regeln zur Überprüfung verwenden.

Problemumgehung:

Sie können die Benutzer überprüfen, indem Sie das Paket usertype 添加一个方法,该方法使用 validator anfordern.

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
}
Nach dem Login kopieren

Anrufvalidierung sieht so aus

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)
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBenutzerdefinierte Aufzählungsvalidierungsregeln des Golang-Validators. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage