Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Peraturan pengesahan penghitungan tersuai pengesah Golang

Peraturan pengesahan penghitungan tersuai pengesah Golang

王林
王林ke hadapan
2024-02-09 08:06:33587semak imbas

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

Editor PHP Xiaoxin hari ini memperkenalkan kepada anda pengesah Golang yang berkuasa - peraturan pengesahan pengiraan tersuai. Apabila Golang semakin popular, semakin ramai pembangun mula menggunakannya untuk membina aplikasi yang cekap dan boleh dipercayai. Pengesah ialah salah satu alat penting, yang boleh membantu kami mengesahkan sama ada data input mematuhi format dan keperluan yang ditentukan. Peraturan pengesahan penghitungan tersuai ialah fungsi penting pengesah, yang boleh membantu kami menentukan jenis penghitungan kami sendiri dan mengesahkan data input. Melalui artikel ini, kami akan memperkenalkan secara terperinci cara menggunakan peraturan pengesahan penghitungan tersuai di Golang, serta beberapa senario aplikasi praktikal. Mari kita terokai ciri hebat ini bersama-sama!

Kandungan soalan

Saya menggunakan https://github.com/go-playground/validator dan saya perlu membuat peraturan pengesahan tersuai untuk nilai penghitungan yang berbeza. Berikut ialah struktur saya - https://go.dev/play/p/UmR6YH6cvK9. Seperti yang anda lihat, saya mempunyai 3 jenis pengguna yang berbeza: pentadbir, penyederhana dan pencipta kandungan, dan saya mahu melaraskan peraturan kata laluan yang berbeza untuk mereka. Sebagai contoh, kata laluan pentadbir hendaklah sekurang-kurangnya 7 aksara dan kata laluan penyederhana hendaklah sekurang-kurangnya 5 aksara. Adakah mungkin untuk melakukan ini melalui tag dalam go-playground/validator?

Perkhidmatan saya mendapat senarai pengguna dan perlu menggunakan peraturan berbeza untuk pengesahan

Penyelesaian

Anda boleh mengesahkan pengguna dengan bertanya pakej 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
}

Sahkan panggilan kelihatan seperti ini

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

Atas ialah kandungan terperinci Peraturan pengesahan penghitungan tersuai pengesah Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam