Štruktúry sú jedným z primárnych a bežne používaných dátových typov poskytovaných v programovacom jazyku Go. Mnoho balíkov naprieč rôznymi funkciami, od databázových balíkov po ORM, a niektoré webové rámce používajú štruktúry na jednoduchú analýzu údajov a ďalšie operácie.
Overenie štruktúry je bežnou úlohou v Go a balík Go validator poskytuje jednoduchý a efektívny spôsob overenia štruktúr vo vašich projektoch.
Čo je balík Go Validator
The Prejsť na validátor balík implementuje overenie hodnôt pre štruktúru a jednotlivé polia na základe špecifikovaných značiek v deklarácii štruktúry.
Balík Go validator poskytuje funkcie pre overenie medzi poľami a krížovými štruktúrami pomocou značiek, slice, array a map diving, ktoré umožňujú úrovne validácia viacrozmerných polí, validácia vlastných polí, extrakcia vlastných definovaných názvov polí, prispôsobiteľné chybové správy a podpora pre populárny Rám ginu ako predvolený validátor balíka.
Spustite jeden z týchto príkazov v termináli vášho pracovného adresára a nainštalujte ho validátor balík.
ísť získať gopkg.in/ísť-ihrisko/validátor.v9
ísť získať github.com/ísť-ihrisko/validátor/v10
Verzie sú príponou adresy URL. Prvý príkaz nainštaluje verziu 9 a druhý nainštaluje verziu 10 balíka.
Po nainštalovaní balíka môžete balík importovať do svojich projektov v závislosti od nainštalovanej verzie.
importovať (
"gopkg.in/go-playground/validator.v9"
)
Teraz môžete pokračovať v používaní balíčka Go validator. Ak sa vyskytnú nejaké problémy s inštaláciou, skúste preinštalovať/inovovať na najnovšiu verziu Go.
Overenie štruktúr pomocou balíčka Validator
Budete musieť vytvoriť inštanciu súboru validátor. Potvrdiť struct, definujte štruktúru, ktorú chcete overiť pomocou validačných značiek, aby ste určili pravidlá validácie pre polia.
Tu je návod, ako môžete vytvoriť inštanciu súboru validátor. Potvrdiť štrukturovať.
funcHlavná() {
validate := validator. Nový()
}
Môžete definovať štruktúru, ktorú chcete overiť, zadaním značiek pre polia, čím nastavíte pravidlá overenia. Validačné značky sú špeciálne anotácie definícií polí struct, ktoré špecifikujú pravidlá.
Tu je bežná štruktúra na overenie.
typu Používateľ štrukturovať {
názov reťazec
Vek int
Email reťazec
}
Tu je príklad štruktúry, pripravený na overenie.
typu Používateľ štrukturovať {
názov reťazec`validate:"povinné"`
Vek int`validate:"gte=0,lte=130"`
Email reťazec`validate:"povinné, e-mail"`
}
V tomto príklade ste zadali názov pole podľa potreby pri vytváraní inštancií, Vek pole musí byť väčšie alebo rovné 0 a menšie alebo rovné 130 a Email pole je povinné a musí to byť platná e-mailová adresa pri vytváraní inštancie.
V balíku Go validator sú k dispozícii rôzne overovacie značky vrátane značiek pre povinné polia, minimálne a maximálne hodnoty a regulárne výrazy. Úplný zoznam dostupných overovacích značiek nájdete v dokumentácii k balíku Go validator.
Po zadefinovaní štruktúry, ktorú chcete overiť, a zadaní pravidiel overenia pre každé pole, môžete použiť Struct metóda validátor. Potvrdiť struct na overenie štruktúry.
používateľ := Používateľ{
// Názov nie je vytvorený
Vek: 3990000,
Email: "[email protected]",
}
// všimnite si, že polia Name a Age zlyhávajú pri overení
chyba := overiť. Štruktúra (používateľ)
ak chyba!= nula {
// Štruktúra je neplatná
}
The Struct metóda vráti chybu, ak sa vyskytnú chyby overenia, a vy môžete chybu zvládnuť na základe vašej operácie.
K týmto chybám sa môžete dostať pomocou ValidationErrors spôsob chyby.
ak chyba!= nula {
pre _, chyba := rozsah chyba.(validátor. ValidationErrors) {
fmt. Println (chyba. Field(), chyba. Značka())
}
}
The ValidationErrors metóda vráti názov každého poľa s chybou overenia a overovacou značkou, ktorá chybu spôsobila.
Môžete tiež definovať vlastné overovacie značky, ak špecifické požiadavky na overenie nie sú súčasťou vstavaných značiek.
Môžete použiť Overenie registra metóda validátor. Potvrdiť štrukturovať. The Overenie registra metóda má dva argumenty; názov overovacej značky a overovacej funkcie. Overovacia funkcia je funkcia spätného volania, ktorá sa volá pre každé pole s vlastnou overovacou značkou a funkcia sa musí vrátiť pravda ak je pole platné a falošný ak je to inak.
Tu je príklad definície vlastnej overovacej značky. Značka overuje polia pre párne čísla.
potvrdiť. Overenie registra("dokonca", func(fl validátor. FieldLevel)bool {
// Pokúste sa získať hodnotu poľa ako int
hodnota, ok := fl. Field().Interface().(int)
ak !ok {
// Ak hodnota poľa nie je int, vráti hodnotu false
vrátiťfalošný
}
// Vráti true, ak je hodnota párna, nepravda, inak
vrátiť hodnota % 2 == 0
})
Kód definuje vlastnú overovaciu značku dokonca pomocou Overenie registra metóda validátor. Potvrdiť štrukturovať. Overovaciu značku ste definovali pomocou funkcie, ktorá preberá jeden argument typu validátor. FieldLevel.
Teraz môžete použiť vlastnú overovaciu značku v definíciách štruktúr rovnakým spôsobom, ako by ste použili pre vstavané overovacie značky.
typu MyStruct štrukturovať {
Hodnota int`validate:"aj"`
}
Je tu ešte viac štruktúr
Structs sú prvotriedni občania v Go a so štruktúrami môžete robiť veľa. Ak poznáte čisto objektovo orientované jazyky, môžete použiť štruktúry Go na prácu s údajmi ako s triedami.