Struktuurid on üks peamisi ja populaarsemaid andmetüüpe, mida Go programmeerimiskeeles pakutakse. Paljud paketid erinevatest funktsioonidest alates andmebaasipakettidest kuni ORM-ideni ja mõned veebiraamistikud kasutavad struktuure andmete hõlpsaks sõelumiseks ja muudeks toiminguteks.
Struktuuride valideerimine on Go's tavaline ülesanne ning Go validaatori pakett pakub lihtsat ja tõhusat viisi projektide struktuuride kinnitamiseks.
Mis on Go Validaatori pakett
The Mine validaatorisse pakett rakendab structi ja üksikute väljade väärtuste valideerimist struct deklaratsiooni määratud siltide alusel.
Go validaatori pakett pakub väljade ja struktuuridevahelise valideerimise funktsioone, kasutades silte, viilu, massiivi ja kaardile sukeldumist, mis võimaldavad mitmemõõtmeline välja valideerimine, kohandatud välja valideerimine, kohandatud väljanimede ekstraheerimine, kohandatavad veateated ja tugi populaarne
Džinni raamistik paketi vaikevalidaatorina.Käivitage üks neist käskudest oma töökataloogi terminalis, et installida validaator pakett.
mine hankige gopkg.in/mine-mänguväljak/validaator.v9
mine hankige github.com/mine-mänguväljak/validaator/v10
Versioonid on URL-i järelliide. Esimene käsk installib paketi versiooni 9 ja teine versiooni 10.
Pärast paketi installimist saate paketi importida oma projektidesse sõltuvalt installitud versioonist.
importida (
"gopkg.in/go-playground/validator.v9"
)
Nüüd saate jätkata Go validaatori paketi kasutamist. Kui installimisel esineb probleeme, proovige uuesti installida/uuendada uusimale Go versioonile.
Struktuuride kinnitamine valideerimispaketiga
Peate looma eksemplari validaator. Kinnitage struct, määratlege struktuur, mida soovite valideerida, kasutades valideerimissilte, et määrata väljade valideerimisreeglid.
Siit saate teada, kuidas saate luua eksemplari validaator. Kinnitage struktuur.
funcpeamine() {
kinnitada := validaator. Uus()
}
Saate määratleda struktuuri, mida soovite kinnitada, määrates väljadele sildid, määrates sellega valideerimisreeglid. Valideerimissildid on struktuurivälja definitsioonide erimärkused, mis täpsustavad reegleid.
Siin on tavaline kinnitamise struktuur.
tüüp Kasutaja struktuur {
Nimi string
Vanus int
Meil string
}
Siin on valideerimiseks valmis struktuuri näide.
tüüp Kasutaja struktuur {
Nimi string`validate:"nõutav"`
Vanus int`validate:"gte=0,lte=130"`
Meil string`validate:"nõutav, email"`
}
Selles näites määrasite Nimi välja, nagu seda on vaja käivitamisel, Vanus väli peab olema suurem või võrdne 0 ja väiksem või võrdne 130 ning Meil väli on kohustuslik ja see peab olema käivitamisel kehtiv e-posti aadress.
Go validaatori paketis on saadaval erinevad valideerimissildid, sealhulgas kohustuslike väljade, minimaalsete ja maksimaalsete väärtuste ja regulaaravaldised. Täieliku loendi saadaolevatest valideerimismärgenditest leiate Go validaatori paketi dokumentatsioonist.
Kui olete määratlenud struktuuri, mida soovite kinnitada, ja määranud iga välja jaoks valideerimisreeglid, saate kasutada Struktuur meetod validaator. Kinnitage struct struktuuri kinnitamiseks.
kasutaja := Kasutaja{
// Nimi pole instantseeritud
Vanus: 3990000,
E-post: "[email protected]",
}
// pange tähele, et väljade Nimi ja vanus valideerimine ebaõnnestub
err := kinnita. Struktuur (kasutaja)
kui eks!= null {
// Struktuur on kehtetu
}
The Struktuur meetod tagastab veateate, kui valideerimisvead on olemas, ja saate seda viga oma toimingu põhjal käsitleda.
Nendele vigadele pääsete juurde kasutades Valideerimisvead vea meetod.
kui eks!= null {
jaoks _, eksitus := ulatus err. (validaator. ValidationErrors) {
fmt. Println (err. Väli(), viga. Tag())
}
}
The Valideerimisvead meetod tagastab iga valideerimisveaga välja nime ja tõrke põhjustanud valideerimissildi.
Saate määrata ka kohandatud valideerimissildid, kui konkreetsed valideerimisnõuded ei kuulu sisseehitatud siltide hulka.
Võite kasutada Registri kinnitamine meetod validaator. Kinnitage struktuur. The Registri kinnitamine meetodil on kaks argumenti; valideerimissildi nimi ja valideerimisfunktsioon. Valideerimisfunktsioon on tagasihelistamise funktsioon, mida kutsutakse välja iga kohandatud valideerimissildiga välja jaoks ja funktsioon peab tagastama tõsi kui väli on kehtiv ja vale kui teisiti.
Siin on kohandatud valideerimismärgendi definitsiooni näide. Märgend kinnitab väljad paarisarvude jaoks.
kinnitada. RegisterValidation("isegi", func(fl validaator. FieldLevel)bool {
// Proovige saada välja väärtus int-na
väärtus, ok := fl. Väli().Liides().(int)
kui !Okei {
// Kui välja väärtus ei ole int, tagastab vale
tagasivale
}
// Tagastab tõene, kui väärtus on paaris, false, muul juhul
tagasi väärtus % 2 == 0
})
Kood määratleb kohandatud valideerimissildi isegi kasutades Registri kinnitamine meetod validaator. Kinnitage struktuur. Määrasite valideerimissildi funktsiooni abil, mis võtab ühe tüübiargumendi validaator. Väljatase.
Nüüd saate kohandatud valideerimissilti kasutada struktuuride definitsioonides samamoodi nagu sisseehitatud valideerimissiltide puhul.
tüüp MinuStruktuur struktuur {
Väärtus int`kinnitage:"isegi"`
}
Struktuure on vaja veel teha
Struktuurid on Go's esmaklassilised kodanikud ja struktuuridega saate nii palju ära teha. Kui tunnete puhtalt objektorienteeritud keeli, saate andmetega töötamiseks kasutada Go-struktuure nagu klasside puhul.