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

Peraturan pengesahan penghitungan tersuai pengesah Golang

王林
Lepaskan: 2024-02-09 08:06:33
ke hadapan
679 orang telah melayarinya

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
}
Salin selepas log masuk

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)
    }
}
Salin selepas log masuk

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

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan