Kaip priskirti numatytąsias reikšmes struktūrų laukams Golange?

Kaip Priskirti Numatytasias Reiksmes Strukturu Laukams Golange



Golang yra moderni programavimo kalba, kuri pastaraisiais metais išpopuliarėjo. Viena iš galingiausių Golang savybių yra jos gebėjimas apibrėžti ir manipuliuoti struktūras. Struktūros yra vartotojo apibrėžti duomenų tipai, leidžiantys kūrėjams sugrupuoti susijusius duomenų laukus į vieną objektą. eik, struktūros gali turėti numatytosios vertės priskirti jų laukams, todėl juos inicijuoti daug lengviau.

Šiame rašinyje išnagrinėsime, kaip priskirti a Numatytoji reikšmė struktūriniam laukui Golange.

Kas yra struktūriniai laukai?

Pirma, labai svarbu suprasti sąvoką kurti laukus . The kurti laukus yra kintamieji, kurie sugrupuoti į a struktūra objektas. Kiekvienas struktūrinis laukas turi pavadinimą ir duomenų tipą. Pavyzdžiui, asmenį vaizduojanti struktūra gali turėti tokius laukus kaip vardas, amžius ir lytis.







Kaip priskirti numatytąsias reikšmes struktūriniams laukams Golange?

Numatytosios vertės galima priskirti struct laukams Go naudojant:



  • Numatytosios nulinės reikšmės
  • Konstruktoriai
  • Struktūriniai raštai
  • Numatytosios lauko reikšmės

1: numatytosios nulinės reikšmės

„Go“ numatytąsias vertes struct laukams galima pasiekti naudojant „ nulinė vertė “ funkcija. Ši funkcija automatiškai priskiria numatytąją reikšmę arba ' 0 “ arba „ klaidinga “ į kiekvieną neinicializuotą lauką, atsižvelgiant į duomenų tipą. Tai reiškia, kad jums nereikia aiškiai nustatyti numatytųjų verčių kiekvienam struktūros laukui, nes „Go“ tai padarys už jus.



Ši funkcija gali būti naudinga dirbant su didelėmis struktūromis su daugybe laukų, nes sutaupoma laiko ir pastangų rankiniu būdu nustatant numatytąsias kiekvieno lauko vertes.





Štai pavyzdys, kuriame nulinė reikšmė naudojama struktūrinių laukų numatytosioms reikšmėms priskirti:

pagrindinis paketas

importuoti 'fmt'

tipo Asmens struktūra {
pavadinimo eilutę
Amžius    tarp
Aukštis plūdė64
IsMale bool
}

pagrindinė funkcija ( ) {
p1 := Asmuo { Vardas: 'Jonas' , Amžius: 30 }
fmt.Println ( p1.Vardas )
fmt.Println ( p1.Amžius )
fmt.Println ( p1.Aukštis )
fmt.Println ( p1.Ar Vyras )
}

Aukščiau pateiktas kodas apibrėžia asmenį struktūra su keturiais laukais: Vardas, Amžius, Ūgis ir IsMale, kurie visi yra bool duomenų tipo. Tada sukuriame naują asmens klasės p1 egzempliorių ir inicijuojame kai kuriuos jos laukus naudodami struct literals, kad nurodytume laukų pavadinimus ir reikšmes. The numatytosios nulio reikšmės laukams, kurie nebuvo aiškiai nustatyti inicijavimo metu, rodomi, kai spausdinate laukų reikšmes naudodami fmt.Println .



Išvestis

2: Konstruktoriai

Rašydamas a konstruktorius funkcijai struct, taip pat galite suteikti numatytąsias reikšmes struct laukams Golang. The konstruktorius funkcija sukuria naują struktūros egzempliorių ir nustato numatytąsias jo laukų reikšmes. Šis metodas taupo pastangas ir laiką, ypač sąveikaujant su didžiulėmis struktūromis su daugybe laukų.

Štai pavyzdys, kaip apibrėžti a konstruktorius funkcija su numatytosiomis struktūros lauko reikšmėmis:

pagrindinis paketas

importuoti 'fmt'

tipo Asmens struktūra {
Pavadinimas    eilutė
Amžius     tarpt
Adreso eilutė
}
Func NewPerson ( ) * Asmuo {
grąžinti & Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
Adresas: '123 Main St' ,
}
}
pagrindinė funkcija ( ) {
p := NewPerson ( )
fmt.Println ( p.Vardas, p.Amžius, p.Adresas )
}

Aukščiau pateiktame kode a Asmuo apibrėžta struktūra, taip pat naujas asmuo () funkcija, kuri sukuria naują egzempliorių Asmuo struktūra su iš anksto nustatytais numatytais parametrais. Mes skambiname naujas asmuo () in pagrindinis () sukurti naują asmens egzempliorių su numatytosios lauko reikšmės , tada išspausdiname to egzemplioriaus laukų reikšmes.

Išvestis

3: Struktūros raidės

Golange galite nustatyti numatytąsias struktūrų laukų reikšmes naudodami struktūrinės raidės taip pat. Tiesiog sukurkite naują struktūros egzempliorių ir nustatykite kiekvieno lauko, kurį reikia inicijuoti, reikšmes. Jei norite nustatyti numatytąsias reikšmes laukams, kurių aiškiai neinicializuojate, galite naudoti nulinės reikšmės funkciją.

Štai pavyzdys, kaip naudoti struktūrinės raidės norėdami nustatyti numatytąsias struktūros lauko vertes:

pagrindinis paketas

importuoti 'fmt'

tipo Asmens struktūra {
Pavadinimas    eilutė
Amžius     tarpt
Adreso eilutė
}
pagrindinė funkcija ( ) {
p := Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
}
fmt.Println ( p.Vardas, p.Amžius, p.Adresas )
}

Aukščiau pateiktame kode apibrėžiame a Asmuo struct šiame pavyzdyje ir sukurkite naują jo egzempliorių naudodami struct literalą ir numatytąsias jo laukų reikšmes. Naujas Asmuo egzempliorius sukuriamas main(), kai kurios lauko reikšmės yra užpildytos, o kitos paliekamos tuščios. Nuo pat Adresas laukas nėra inicijuotas, jis gauna tuščią eilutę, kuri yra numatytoji šio lauko reikšmė. Galiausiai išspausdiname asmens egzemplioriaus lauko reikšmes.

Išvestis

4: numatytosios lauko reikšmės

Priskyrimas numatytosios vertės į kurti laukus in Go yra paprastas procesas. The Numatytoji reikšmė struct lauką galima nustatyti naudojant sintaksę fieldName:defaultValue . Pavyzdžiui, apsvarstykite šį struktūros apibrėžimą:

tipo Asmens struktūra {
Vardo eilutė
Amžius tarpt
Lyties eilutė
}

Paskirti numatytosios vertės šios struktūros laukams galime naudoti šią sintaksę:

p := Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
Lytis: 'Patinas' ,
}

Aukščiau pateiktame pavyzdyje mes priskyrėme numatytosios vertės į Asmens struktūros laukus. Jei inicijavimo metu praleisime kurią nors iš reikšmių, Numatytoji reikšmė bus naudojamas vietoj. Pavyzdžiui, jei inicijuojame asmens objektą taip:

p := Asmuo {
Vardas: 'Jane Doe' ,
}

Gautas Asmens objektas turės numatytosios vertės laukuose Amžius ir Lytis, kurie yra atitinkamai 0 ir tuščia eilutė.

Čia yra visas kodas, iliustruojantis aukščiau pateiktą procesą:

pagrindinis paketas
importuoti 'fmt'

tipo Asmens struktūra {
pavadinimo eilutę
Amžius    tarp
Lyties eilutė
}
pagrindinė funkcija ( ) {
p1 := Asmuo {
Vardas: 'Jonas Doe' ,
Amžius: 30 ,
Lytis: 'Patinas' ,
}
fmt.Println ( p1 )

p2 := Asmuo {
Vardas: 'Džeremis' ,
}
fmt.Println ( p2 )
}

Aukščiau pateiktame pavyzdyje sukuriame asmens struktūrą, kurią sudaro trys laukai: vardas, amžių nurodantis int ir lytis, lytį žyminti eilutė. Tada struktūros inicijavimo sintaksė naudojama dviem asmens egzemplioriams, p1 ir p2, sukurti. p1 inicijuojamas su reikšmėmis „John Doe“ (vardas), „30“ – amžius ir „vyras“ – lytis, kurios visos yra aiškiai pateiktos vertės. Kadangi nepateikėme amžiaus ir lyties verčių, joms bus priskirtos atitinkamai numatytosios 0 ir tuščios eilutės reikšmės. p2 iš pradžių inicijuojamas tik pateikiant lauką Pavadinimas.

Išvestis

Išvada

Priskyrimas numatytosios vertės in Go yra esminis programavimo šia kalba aspektas. Tai padeda užtikrinti, kad kiekvienam sukurtam struktūros egzemplioriui būtų priskirti numatytieji duomenys. Naudodami bet kurį iš aukščiau paaiškintų metodų, kūrėjai gali nustatyti numatytosios vertės efektyviai sutvarkyti laukus.