Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Strukture su jedan od primarnih i popularno korištenih tipova podataka u programskom jeziku Go. Mnogi paketi s različitim funkcijama, od paketa baza podataka do ORM-ova, a neki web okviri koriste strukture za jednostavno analiziranje podataka i druge operacije.

Provjera valjanosti strukture uobičajena je zadaća u Gou, a paket Go validatora pruža jednostavan i učinkovit način provjere valjanosti struktura u vašim projektima.

Što je Go Validator paket

The Idi validator paket implementira provjere vrijednosti za strukturu i pojedinačna polja na temelju navedenih oznaka u deklaraciji strukture.

Paket Go validatora pruža značajke za provjeru valjanosti između polja i strukture pomoću oznaka, odsječaka, nizova i ronjenja na karti koje omogućuju razine višedimenzionalna provjera valjanosti polja, prilagođena provjera valjanosti polja, izdvajanje prilagođeno definiranih naziva polja, prilagodljive poruke o pogrešci i podrška za popularan

instagram viewer
Gin okvir kao zadani validator za paket.

Pokrenite jednu od ovih naredbi u terminalu vašeg radnog direktorija da instalirate validator paket.

ići nabavi gopkg.in/ići-igralište/validator.v9
ići dobiti github.com/ići-igralište/validator/v10

Verzije su sufiks URL-a. Prva naredba instalira verziju 9, a druga instalira verziju 10 paketa.

Nakon instaliranja paketa, možete ga uvesti u svoje projekte ovisno o verziji koju ste instalirali.

uvoz (
"gopkg.in/go-playground/validator.v9"
)

Sada možete nastaviti s korištenjem paketa Go validator. Ako postoje problemi s vašom instalacijom, pokušajte ponovno instalirati/nadograditi na najnoviju verziju Goa.

Provjera valjanosti struktura s paketom valjanosti

Morat ćete izraditi instancu validator. Potvrdi struct, definirajte strukturu koju želite potvrditi pomoću oznaka za provjeru valjanosti za određivanje pravila provjere valjanosti za polja.

Evo kako možete stvoriti instancu validator. Potvrdi strukturirati

funkglavni() {
potvrditi := validator. Novi()
}

Strukturu koju želite potvrditi možete definirati određivanjem oznaka za polja, postavljajući tako pravila provjere valjanosti. Validacijske oznake posebne su napomene definicija polja strukture koje određuju pravila.

Evo uobičajene strukture za provjeru valjanosti.

tip Korisnik strukturirati {
Ime niz
Dob int
E-mail niz
}

Evo primjera strukture, spremnog za provjeru valjanosti.

tip Korisnik strukturirati {
Ime niz`potvrda:"obavezno"`
Dob int`provjeri:"gte=0,lte=130"`
E-mail niz`potvrda:"obavezno, email"`
}

U ovom primjeru naveli ste Ime polje prema potrebi pri instanciranju, the Dob polje mora biti veće ili jednako 0 i manje ili jednako 130, a E-mail polje je obavezno i ​​mora biti valjana adresa e-pošte pri instanciranju.

U paketu Go validatora dostupne su različite oznake za provjeru valjanosti, uključujući oznake za obavezna polja, minimalne i maksimalne vrijednosti i regularni izrazi. Potpuni popis dostupnih oznaka za provjeru valjanosti možete pronaći u dokumentaciji za paket Go validatora.

Nakon što ste definirali strukturu koju želite potvrditi i naveli pravila provjere valjanosti za svako polje, možete koristiti Struktura metoda validator. Potvrdi struct za provjeru valjanosti strukture.

korisnik := korisnik{
// Ime nije instancirano
Dob: 3990000,
Email: "[email protected]",
}
// imajte na umu da polja Ime i Dob ne prolaze provjeru valjanosti

pogreška := potvrditi. Struct (korisnik)
ako pogriješiti != nula {
// Struktura je nevažeća
}

The Struktura metoda vraća pogrešku ako postoje pogreške provjere valjanosti, a vi možete riješiti pogrešku na temelju svoje operacije.

Ovim pogreškama možete pristupiti pomoću ValidationErrors metoda greške.

ako pogriješiti != nula {
za _, pogriješiti := domet pogreška (validator. ValidationErrors) {
fmt. Println (pogreška Polje(), pogreška. Označiti())
}
}

The ValidationErrors metoda će vratiti naziv svakog polja s pogreškom provjere valjanosti i oznaku provjere valjanosti koja je uzrokovala pogrešku.

Također možete definirati prilagođene oznake za provjeru valjanosti ako specifični zahtjevi za provjeru valjanosti nisu dio ugrađenih oznaka.

Možete koristiti RegisterValidation metoda validator. Potvrdi strukturirati The RegisterValidation metoda uzima dva argumenta; naziv oznake za provjeru valjanosti i funkciju provjere valjanosti. Funkcija provjere valjanosti funkcija je povratnog poziva koja se poziva za svako polje koje ima prilagođenu oznaku provjere valjanosti, a funkcija mora vratiti pravi ako je polje valjano i lažno ako je drugačije.

Evo primjera definicije prilagođene oznake za provjeru valjanosti. Oznaka potvrđuje polja za parne brojeve.

potvrditi. RegisterValidation("čak", funk(fl validator. FieldLevel)bool {
// Pokušajte dobiti vrijednost polja kao int
vrijednost, ok := fl. Polje().Sučelje().(int)
ako !u redu {
// Ako vrijednost polja nije int, vrati false
povrataklažno
}
// Vrati true ako je vrijednost parna, false, inače
povratak vrijednost % 2 == 0
})

Kod definira prilagođenu oznaku provjere valjanosti čak koristiti RegisterValidation metoda validator. Potvrdi strukturirati Definirali ste oznaku provjere pomoću funkcije koja uzima jedan argument tipa validator. FieldLevel.

Sada možete koristiti prilagođenu oznaku za provjeru valjanosti u definicijama struktura na isti način na koji biste koristili ugrađene oznake za provjeru valjanosti.

tip MyStruct strukturirati {
Vrijednost int`potvrdi:"čak"`
}

Postoji još više struktura

Structs su prvorazredni građani u Gou i ima toliko toga što možete učiniti sa structovima. Ako ste upoznati s čisto objektno orijentiranim jezicima, možete koristiti Go strukture za rad s podacima kao što biste to učinili s klasama.