Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Struktūras ir viens no primārajiem un populārākajiem datu veidiem, kas tiek nodrošināti Go programmēšanas valodā. Daudzas pakotnes dažādās funkcijās, sākot no datu bāzes pakotnēm līdz ORM, un dažas tīmekļa sistēmas izmanto struktūras ērtai datu parsēšanai un citām darbībām.

Struktūru validācija ir izplatīts uzdevums pakalpojumā Go, un Go validatora pakotne nodrošina vienkāršu un efektīvu veidu, kā pārbaudīt struktūras jūsu projektos.

Kas ir Go Validator pakotne

The Dodieties uz validatoru pakotne ievieš vērtību validāciju struct un atsevišķiem laukiem, pamatojoties uz norādītajiem tagiem struct deklarācijā.

Go validatora pakotne nodrošina starplauku un starpstruktūru validācijas funkcijas, izmantojot tagus, slāņu, masīvu un kartes niršanu, kas ļauj daudzdimensiju lauku validācija, pielāgotu lauku validācija, pielāgotu lauku nosaukumu iegūšana, pielāgojami kļūdu ziņojumi un atbalsts populārs Džins karkass kā noklusējuma validatoru pakotnei.

instagram viewer

Palaidiet vienu no šīm komandām sava darba direktorija terminālī, lai instalētu validators iepakojums.

aiziet iegūt gopkg.in/aiziet-rotaļu laukums/validators.v9
aiziet iegūt github.com/aiziet-rotaļu laukums/validators/v10

Versijas ir URL sufikss. Pirmā komanda instalē pakotnes 9. versiju, bet otrā - 10. versiju.

Pēc pakotnes instalēšanas varat importēt pakotni savos projektos atkarībā no instalētās versijas.

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

Tagad varat turpināt izmantot Go validator pakotni. Ja ar instalēšanu rodas problēmas, mēģiniet atkārtoti instalēt/jaunināt uz jaunāko Go versiju.

Struktūru apstiprināšana, izmantojot validatora paketi

Jums būs jāizveido eksemplārs validators. Apstiprināt struct, definējiet struktūru, kuru vēlaties pārbaudīt, izmantojot validācijas tagus, lai norādītu lauku validācijas noteikumus.

Lūk, kā varat izveidot eksemplāru validators. Apstiprināt struktūra.

funcgalvenais() {
apstiprināt := pārbaudītājs. Jauns()
}

Varat definēt struktūru, kuru vēlaties pārbaudīt, norādot laukiem tagus, tādējādi iestatot validācijas noteikumus. Validācijas tagi ir īpašas anotācijas struct lauka definīcijām, kas norāda noteikumus.

Šeit ir parasta struktūra apstiprināšanai.

veids Lietotājs struktūra {
Vārds virkne
Vecums starpt
E-pasts virkne
}

Šis ir struktūras piemērs, kas ir gatavs apstiprināšanai.

veids Lietotājs struktūra {
Vārds virkne`validate:"nepieciešams"`
Vecums starpt`validate:"gte=0,lte=130"`
E-pasts virkne`validate:"obligāts, e-pasts"`
}

Šajā piemērā jūs norādījāt Vārds lauks, kas nepieciešams instantiācijā, Vecums laukam ir jābūt lielākam vai vienādam ar 0 un mazākam vai vienādam ar 130, un E-pasts lauks ir obligāts, un tam ir jābūt derīgai e-pasta adresei, kas tiek parādīta.

Go validator pakotnē ir pieejami dažādi validācijas tagi, tostarp atzīmes obligātajiem laukiem, minimālās un maksimālās vērtības un regulāras izteiksmes. Pilnu pieejamo validācijas tagu sarakstu varat atrast Go validator pakotnes dokumentācijā.

Kad esat definējis konstrukciju, kuru vēlaties pārbaudīt, un norādījis katra lauka validācijas noteikumus, varat izmantot Struktūra metode validators. Apstiprināt struct, lai apstiprinātu struktūru.

lietotājs := lietotājs{
// Vārds nav iemiesots
Vecums: 3990000,
E-pasts: "[email protected]",
}
// ņemiet vērā, ka lauku Vārds un Vecums validācija neizdodas

err := apstiprināt. Struktūra (lietotājs)
ja kļūda! = nulle {
// Struktūra nav derīga
}

The Struktūra metode atgriež kļūdu, ja pastāv validācijas kļūdas, un jūs varat rīkoties ar kļūdu, pamatojoties uz savu darbību.

Šīm kļūdām varat piekļūt, izmantojot Validation Errors kļūdas metode.

ja kļūda! = nulle {
priekš _, kļūda := diapazons err. (validators. ValidationErrors) {
fmt. Println (kļūda. Lauks (), kļūda. Tag())
}
}

The Validation Errors metode atgriezīs katra lauka nosaukumu ar validācijas kļūdu un validācijas tagu, kas izraisīja kļūdu.

Varat arī definēt pielāgotus validācijas tagus, ja īpašas validācijas prasības nav iekļautas iebūvētajos tagos.

Jūs varat izmantot ReģistrētiesValidācija metode validators. Apstiprināt struktūra. The ReģistrētiesValidācija metodei ir divi argumenti; validācijas taga nosaukums un validācijas funkcija. Validācijas funkcija ir atzvanīšanas funkcija, kas tiek izsaukta katram laukam ar pielāgotu validācijas tagu, un funkcijai ir jāatgriež taisnība ja lauks ir derīgs un viltus ja citādi.

Tālāk ir sniegts pielāgota validācijas taga definīcijas piemērs. Tags apstiprina laukus pāra skaitļiem.

apstiprināt. RegisterValidation("pat", func(fl validators. FieldLevel)bool {
// Mēģiniet iegūt lauka vērtību kā int
vērtība, ok := fl. Lauks().Interfeiss().(starpt)
ja !labi {
// Ja lauka vērtība nav int, atgriež false
atgrieztiesviltus
}
// Atgriež true, ja vērtība ir pāra, false, pretējā gadījumā
atgriezties vērtība % 2 == 0
})

Kods definē pielāgotu validācijas tagu pat izmantojot ReģistrētiesValidācija metode validators. Apstiprināt struktūra. Jūs definējāt validācijas tagu, izmantojot funkciju, kas izmanto vienu tipa argumentu validators. Lauka līmenis.

Tagad strukturu definīcijās varat izmantot pielāgoto validācijas tagu tāpat kā iebūvētajiem validācijas tagiem.

veids MyStruct struktūra {
Vērtība starpt`apstiprināt: "pat"".
}

Ir vēl vairāk, lai Go Structs

Struktūras ir pirmās klases pilsoņi pakalpojumā Go, un ar struktūrām jūs varat darīt tik daudz. Ja esat pazīstams ar tikai objektorientētām valodām, varat izmantot Go struktūras, lai strādātu ar datiem tāpat kā ar klasēm.