Struktūros yra vienas iš pagrindinių ir populiariai naudojamų duomenų tipų, pateikiamų Go programavimo kalboje. Daugelyje įvairių funkcijų paketų, pradedant duomenų bazių paketais ir baigiant ORM, o kai kuriose žiniatinklio sistemose naudojamos struktūros, skirtos lengvai analizuoti duomenis ir atlikti kitas operacijas.
Struktūrų patvirtinimas yra įprasta „Go“ užduotis, o „Go“ tikrinimo priemonės paketas yra paprastas ir efektyvus būdas patvirtinti jūsų projektų struktūras.
Kas yra „Go Validator“ paketas
The Eikite į tikrintuvą paketas įgyvendina struct ir atskirų laukų reikšmių patvirtinimą pagal nurodytas žymes struct deklaracijoje.
„Go validator“ pakete pateikiamos funkcijos, skirtos kryžminiam laukui ir kryžminiam struktūrų patvirtinimui naudojant žymas, pjūvius, masyvus ir žemėlapio nardymą, leidžiančius daugiamatis lauko patvirtinimas, pasirinktinio lauko patvirtinimas, pasirinktinai apibrėžtų laukų pavadinimų ištraukimas, pritaikomi klaidų pranešimai ir palaikymas populiarus
Džino karkasas kaip numatytasis paketo tikrintuvas.Paleiskite vieną iš šių komandų savo darbo katalogo terminale, kad įdiegtumėte tikrintuvas paketą.
eik gauti gopkg.in/eik-žaidimų aikštelė/validatorius.v9
eik gauti github.com/eik-žaidimų aikštelė/validatorius/v10
Versijos yra URL priesaga. Pirmoji komanda įdiegia 9 versiją, o antrąją – 10 paketo versiją.
Įdiegę paketą, galite importuoti paketą į savo projektus, atsižvelgdami į įdiegtą versiją.
importuoti (
"gopkg.in/go-playground/validator.v9"
)
Dabar galite naudoti „Go validator“ paketą. Jei kyla problemų dėl diegimo, pabandykite iš naujo įdiegti / atnaujinti į naujausią „Go“ versiją.
Struktūrų patvirtinimas naudojant patvirtinimo paketą
Turėsite sukurti egzempliorių tikrintuvas. Patvirtinti struct, apibrėžkite struktūrą, kurią norite patvirtinti, naudodami patvirtinimo žymas, kad nurodytumėte laukų patvirtinimo taisykles.
Štai kaip galite sukurti egzempliorių tikrintuvas. Patvirtinti struktūra.
funcpagrindinis() {
patvirtinti := patvirtinimo priemonė. Naujas ()
}
Galite apibrėžti struktūrą, kurią norite patvirtinti, nurodydami laukų žymas ir taip nustatydami patvirtinimo taisykles. Patvirtinimo žymos yra specialios struct laukų apibrėžimų anotacijos, nurodančios taisykles.
Čia yra įprasta patvirtinimo struktūra.
tipo Vartotojas struktūra {
vardas styga
Amžius tarpt
El. paštas styga
}
Štai struktūros pavyzdys, paruoštas patvirtinimui.
tipo Vartotojas struktūra {
vardas styga`patikrinti:"reikalinga"`
Amžius tarpt`patikrinti:"gte=0,lte=130"`
El. paštas styga`patvirtinti:"reikalinga, el. paštas"`
}
Šiame pavyzdyje nurodėte vardas lauke, kaip reikalaujama egzistavimo metu, Amžius laukas turi būti didesnis arba lygus 0 ir mažesnis arba lygus 130, o El. paštas laukas yra privalomas ir turi būti galiojantis el. pašto adresas egzempliorių metu.
„Go validator“ pakete yra įvairių patvirtinimo žymų, įskaitant privalomų laukų žymas, minimalias ir didžiausias vertes ir reguliarios išraiškos. Visą galimų patvirtinimo žymų sąrašą galite rasti „Go validator“ paketo dokumentacijoje.
Kai apibrėžėte struktūrą, kurią norite patvirtinti, ir nurodėte kiekvieno lauko patvirtinimo taisykles, galite naudoti Struktūra metodas tikrintuvas. Patvirtinti struktūra patvirtinti struktūrą.
vartotojas := vartotojas{
// Vardas nepakartojamas
Amžius: 3990000,
El. paštas: "[email protected]",
}
// atkreipkite dėmesį, kad laukų Vardas ir Amžius patvirtinimas nepavyko
klaida := patvirtinti. Struktūra (vartotojas)
jeigu klysta! = nulis {
// Struktūra neteisinga
}
The Struktūra metodas grąžina klaidą, jei yra patvirtinimo klaidų, ir jūs galite tvarkyti klaidą atsižvelgdami į savo veiklą.
Šias klaidas galite pasiekti naudodami Patvirtinimo klaidos klaidos metodas.
jeigu klysta! = nulis {
dėl _, klaida := diapazonas klysta.(tvirtiklis. ValidationErrors) {
fmt. Println (err. Laukas (), klaida. Žyma ())
}
}
The Patvirtinimo klaidos metodas grąžins kiekvieno lauko pavadinimą su patvirtinimo klaida ir patvirtinimo žymą, kuri sukėlė klaidą.
Taip pat galite apibrėžti pasirinktines patvirtinimo žymas, jei konkretūs patvirtinimo reikalavimai nėra įtaisytųjų žymų dalis.
Galite naudoti Registro patvirtinimas metodas tikrintuvas. Patvirtinti struktūra. The Registro patvirtinimas metodas apima du argumentus; patvirtinimo žymos pavadinimas ir patvirtinimo funkcija. Patvirtinimo funkcija yra atgalinio skambinimo funkcija, kuri iškviečiama kiekvienam laukui, turinčiam tinkintą patvirtinimo žymą, ir funkcija turi grąžinti tiesa jei laukas galioja ir klaidinga jei kitaip.
Štai tinkintos patvirtinimo žymos apibrėžimo pavyzdys. Žyma patvirtina lyginių skaičių laukus.
patvirtinti. Registro patvirtinimas ("netgi", func(fl validatorius. Lauko lygis)bool {
// Pabandykite gauti lauko reikšmę kaip int
vertė, gerai := fl. Laukas().Sąsaja().(tarpt)
jeigu !Gerai {
// Jei lauko reikšmė nėra int, grąžinkite false
grąžintiklaidinga
}
// Grąžina tiesa, jei reikšmė lygi, false, kitaip
grąžinti vertė % 2 == 0
})
Kodas apibrėžia tinkintą patvirtinimo žymą net naudojant Registro patvirtinimas metodas tikrintuvas. Patvirtinti struktūra. Apibrėžėte patvirtinimo žymą naudodami funkciją, kuri paima vieną tipo argumentą tikrintuvas. Lauko lygis.
Dabar tinkintą patvirtinimo žymą galite naudoti struktūrų apibrėžimuose taip pat, kaip ir įtaisytosiose patvirtinimo žymose.
tipo „MyStruct“. struktūra {
Vertė tarpt`patvirtinti: "net"".
}
Yra dar daugiau „Go Structs“.
Struktūros yra aukščiausios klasės „Go“ piliečiai, o su struktūromis galite nuveikti tiek daug. Jei esate susipažinę su grynai į objektus orientuotomis kalbomis, galite naudoti Go struktūras, kad galėtumėte dirbti su duomenimis taip, kaip tai darytumėte su klasėmis.