Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Strukture so eden od primarnih in pogosto uporabljenih tipov podatkov v programskem jeziku Go. Številni paketi z različnimi funkcijami, od paketov baze podatkov do ORM-jev, in nekatera spletna ogrodja uporabljajo strukture za preprosto razčlenjevanje podatkov in druge operacije.

Preverjanje struktur je običajna naloga v Go, paket validatorja Go pa zagotavlja preprost in učinkovit način za preverjanje struktur v vaših projektih.

Kaj je paket Go Validator

The Pojdi validator paket implementira validacije vrednosti za strukturo in posamezna polja na podlagi določenih oznak v deklaraciji strukture.

Paket Go validator ponuja funkcije za medpoljsko in medstrukturno validacijo z uporabo oznak, rezin, nizov in potapljanja zemljevidov, ki omogočajo ravni večdimenzionalno preverjanje veljavnosti polj, preverjanje veljavnosti polj po meri, ekstrakcija po meri definiranih imen polj, prilagodljiva sporočila o napakah in podpora za priljubljena

instagram viewer
Gin okvir kot privzeti validator za paket.

Zaženite enega od teh ukazov v terminalu vašega delovnega imenika, da namestite validator paket.

pojdi pridobi gopkg.in/pojdi-playground/validator.v9
pojdi pridobi github.com/pojdi-playground/validator/v10

Različice so pripone URL-ja. Prvi ukaz namesti različico 9, drugi pa različico 10 paketa.

Po namestitvi paketa lahko uvozite paket v svoje projekte, odvisno od različice, ki ste jo namestili.

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

Zdaj lahko nadaljujete z uporabo paketa Go validator. Če imate težave z namestitvijo, poskusite znova namestiti/nadgraditi na najnovejšo različico Go.

Preverjanje struktur s paketom Validator

Ustvariti boste morali primerek validator. Potrdi struct, definirajte strukturo, ki jo želite preveriti, z uporabo potrditvenih oznak, da določite pravila preverjanja za polja.

Evo, kako lahko ustvarite primerek validator. Potrdi struct.

funkglavni() {
potrdi := validator. novo()
}

Strukturo, ki jo želite preveriti, lahko definirate tako, da podate oznake za polja in s tem nastavite pravila preverjanja. Oznake za preverjanje veljavnosti so posebne opombe definicij strukturnih polj, ki določajo pravila.

Tukaj je redna struktura za preverjanje.

vrsta Uporabnik struct {
Ime vrvica
Starost int
E-naslov vrvica
}

Tukaj je primer strukture, pripravljen za preverjanje.

vrsta Uporabnik struct {
Ime vrvica`validate:"required"`
Starost int`validate:"gte=0,lte=130"`
E-naslov vrvica`validate:"obvezno, email"`
}

V tem primeru ste določili Ime polje, kot je zahtevano pri instanciaciji, Starost polje mora biti večje ali enako 0 in manjše ali enako 130, in E-naslov polje je obvezno in mora biti veljaven e-poštni naslov ob instanciaciji.

V paketu Go validator so na voljo različne potrditvene oznake, vključno z oznakami za obvezna polja, najmanjše in največje vrednosti ter regularni izrazi. Celoten seznam razpoložljivih potrditvenih oznak najdete v dokumentaciji za paket Go validator.

Ko definirate strukturo, ki jo želite preveriti, in podate pravila preverjanja za vsako polje, lahko uporabite Struct metoda validator. Potrdi struct za potrditev strukture.

uporabnik := uporabnik{
// Ime ni instancirano
starost: 3990000,
E-naslov: "[email protected]",
}
// upoštevajte, da polji Ime in Starost ne prestanejo preverjanja

napaka := potrdi. Struct (uporabnik)
če napaka!= nič {
// Struktura ni veljavna
}

The Struct metoda vrne napako, če obstajajo napake pri preverjanju, in lahko napako obravnavate na podlagi svoje operacije.

Do teh napak lahko dostopate z uporabo ValidationErrors način napake.

če napaka!= nič {
za _, napaka := obseg napaka (validator. ValidationErrors) {
fmt. Println (napaka Polje(), napaka. Oznaka())
}
}

The ValidationErrors vrne ime vsakega polja z napako pri preverjanju in oznako za preverjanje, ki je napako povzročila.

Določite lahko tudi oznake za preverjanje po meri, če posebne zahteve za preverjanje niso del vgrajenih oznak.

Lahko uporabite RegisterValidation metoda validator. Potrdi struct. The RegisterValidation metoda sprejme dva argumenta; ime oznake za preverjanje veljavnosti in funkcijo preverjanja veljavnosti. Funkcija preverjanja veljavnosti je funkcija povratnega klica, ki se kliče za vsako polje, ki ima oznako preverjanja veljavnosti po meri, in funkcija mora vrniti prav če je polje veljavno in lažno če drugače.

Tukaj je primer definicije oznake za preverjanje veljavnosti po meri. Oznaka preverja polja za soda števila.

potrditi. RegisterValidation("celo", funk(fl validator. FieldLevel)bool {
// Poskusite pridobiti vrednost polja kot int
vrednost, ok := fl. Polje().Vmesnik().(int)
če !v redu {
// Če vrednost polja ni int, vrni false
vrnitevlažno
}
// Vrni true, če je vrednost soda, false, sicer
vrnitev vrednost % 2 == 0
})

Koda definira validacijsko oznako po meri celo uporabljati RegisterValidation metoda validator. Potrdi struct. Oznako za preverjanje veljavnosti ste definirali s funkcijo, ki sprejme en sam argument vrste validator. FieldLevel.

Zdaj lahko uporabite oznako za preverjanje veljavnosti po meri v definicijah struktur na enak način, kot bi ga uporabljali za vgrajene oznake za preverjanje veljavnosti.

vrsta MyStruct struct {
Vrednost int`validi:"celo"`
}

Obstaja še več struktur

Strukture so prvorazredni državljani v Go in toliko lahko storite s strukturami. Če ste seznanjeni s povsem objektno usmerjenimi jeziki, lahko uporabite strukture Go za delovanje s podatki, kot bi to storili z razredi.